UROVO Android SDK/Kotlin

UROVO ScanManager Kotlin Beispiel und Validierungscheckliste

Dieser Implementierungsentwurf adaptiert den bewährten UROVO ScanManager API in ein kleines Kotlin -Aktivitätsbeispiel. Es handelt sich um einen Beispielcode zur Validierung, nicht um ein Kompatibilitätsversprechen mit jedem UROVO Modell oder jeder Firmware.

16 Min. gelesenBewertet: 2026-08-10Android Entwickler integrieren UROVO Barcode-Hardware
UROVO DT66 Funktionsansicht für die Android ScanManager -Integration
SDK-referenzgestütztes Beispiel/nicht auf jeder Zielkonfiguration validiert

Verifizierte Ausgangspunkte

API GrundlinieUROVO Android SDK v4.1.0326

Verwenden Sie das genehmigte Paket und notieren Sie die Artefaktprüfsumme.

Kanal dekodierenScanManager.ACTION_DECODE-Broadcast

Lesen Sie dokumentierte Daten, String-, Längen- und Typ-Extras.

LebenszyklusÖffnen und registrieren; anhalten, abmelden und schließen

Passen Sie den Besitz an die Anwendungsarchitektur an.

KompatibilitätGenaues Gerät + Betriebssystem + Firmware + SDK + App-Build

Die Anwesenheit von API allein ist keine bestandene Validierung.

Umsetzungsregel

Behandeln Sie ScanManager als Hardwareressource mit einem expliziten Besitzer. Öffnen Sie es, wählen Sie den gewünschten Ausgabemodus aus, registrieren Sie den Decodierungsempfänger, validieren Sie jede Nutzlast, heben Sie dann die Registrierung auf und schließen Sie es deterministisch. Bestätigen Sie das Verhalten der Methode anhand der Produktionsabsichtsprobe.

01

Bereiten Sie eine reproduzierbare SDK-Basislinie vor

Verpacken Sie das genehmigte SDK-Artefakt über den kontrollierten Entwickler-Download-Prozess. Notieren Sie die Version und SHA-256 zusammen mit dem Anwendungs-Build und dem Gerätedatensatz.

Halten Sie Anbieter-APIs hinter einem Scanner-Adapter, damit die Geschäftslogik ohne Hardware getestet und durch eine andere Erfassungsimplementierung ersetzt werden kann.

  • Nur genehmigte SDK-Quelle
  • Artefakt-Hash aufgezeichnet
  • Adaptergrenze definiert
  • Gerätematrix erstellt
02

Besitzen Sie einmal den Lebenszyklus des Scanners

Die Referenzdokumente API sind die Funktionen openScanner, closeScanner, startDecode, stopDecode und Ausgabemodus. Entscheiden Sie, ob die Aktivität, ein Vordergrunddienst oder eine andere anwendungsbezogene Komponente Eigentümer dieser Aufrufe ist.

Vermeiden Sie, dass mehrere Bildschirme den Scanner unabhängig voneinander öffnen. Machen Sie das Stoppen und Schließen wiederholsicher und zeigen Sie fehlgeschlagene Rückgabewerte im Diagnosestatus an, ohne Barcode-Nutzlasten zu protokollieren.

  • Einzelner Ressourceneigentümer
  • Idempotente Bereinigung
  • Rückgabewerte beobachtet
  • Keine Nutzlasten in gewöhnlichen Protokollen
03

Validieren Sie die Broadcast-Nutzlast

Eine erfolgreiche Decodierungssendung kann Rohdaten, eine decodierte Zeichenfolge, Länge und Barcodetyp umfassen. Überprüfen Sie Aktion, NULL-Zulässigkeit und Länge, bevor Sie ein Domänenereignis übermitteln.

Wählen Sie eine maßgebliche Darstellung. Wenn es auf die Kodierung ankommt, behalten Sie die Rohbytes bei und dekodieren Sie sie unter einem expliziten Zeichensatz, anstatt davon auszugehen, dass es sich bei jedem Barcode um einfaches ASCII handelt.

  • Aktion stimmt genau überein
  • Länge passend zur Nutzlast
  • Kodierungsrichtlinie dokumentiert
  • Doppelter Ereigniswächter
04

Gehen Sie vom Demo- zum Produktionsbeweis über

Der Kompilierungserfolg beweist nur die Quellkompatibilität. Führen Sie die Anwendung auf jedem vorgesehenen Modell, Betriebssystem und jeder Firmware mit repräsentativen Bezeichnungen und Lebenszyklusszenarien aus.

Zeichnen Sie die Scannereinstellungen und den Ausgabemodus nach der Konfiguration auf. Regressionstest nach Firmware-, SDK-, Anwendungs- oder MDM-Richtlinienänderungen.

  • Repräsentativer Scan-Korpus
  • Schlaf- und Wiederaufnahmezyklen
  • Schnelle und lange Codefälle
  • Versionierter Testdatensatz
Entscheidungsmatrix

ScanManager -Lebenszyklusstatuskarte

Halten Sie Ressourcenaufrufe auf den beobachtbaren Anwendungsstatus ausgerichtet.

StaatErforderliche AktionFehlerreaktion
BeginntErstellen Sie ScanManager und öffnen Sie den ScannerErfassung blockieren und Diagnosestatus anzeigen
BereitAusgabemodus einstellen und Empfänger registrierenLesen Sie den Konfigurationsfehler zurück oder melden Sie ihn
ErfassenStarten Sie die Dekodierung oder akzeptieren Sie TriggerereignisseZeitüberschreitung, Stopp und kontrollierte Wiederholung ermöglichen
AngehaltenStoppen Sie die Dekodierung und heben Sie die Registrierung wie vorgesehen aufVerhindern Sie die Übermittlung an einen inaktiven Workflow
ZerstörtSchließen Sie den Scanner einmalBereinigungsergebnis ohne sensible Daten aufzeichnen
SDK

Minimales lebenszyklusbewusstes Kotlin -Beispiel

Überprüfen Sie die Ausgabemoduskonstanten, Android -Empfängerflags und den Lebenszyklusbesitz anhand der genauen SDK-, Ziel- API-und Anwendungsarchitektur.

UrovoScannerActivity.kt
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.device.ScanManager
import androidx.appcompat.app.AppCompatActivity

class UrovoScannerActivity : AppCompatActivity() {
    private val scanner = ScanManager()
    private var receiverRegistered = false

    private val decodeReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            if (intent.action != ScanManager.ACTION_DECODE) return
            val raw = intent.getByteArrayExtra(ScanManager.DECODE_DATA_TAG) ?: return
            val declaredLength = intent.getIntExtra(ScanManager.BARCODE_LENGTH_TAG, raw.size)
            val type = intent.getByteExtra(ScanManager.BARCODE_TYPE_TAG, 0)
            val value = intent.getStringExtra(ScanManager.BARCODE_STRING_TAG)
                ?: raw.copyOf(declaredLength.coerceIn(0, raw.size)).toString(Charsets.UTF_8)
            onValidatedScan(value, type)
        }
    }

    override fun onStart() {
        super.onStart()
        check(scanner.openScanner()) { "Scanner could not be opened" }
        // Confirm the broadcast-output constant in the SDK version you ship.
        check(scanner.switchOutputMode(0)) { "Output mode could not be set" }
        registerReceiver(decodeReceiver, IntentFilter(ScanManager.ACTION_DECODE))
        receiverRegistered = true
    }

    override fun onStop() {
        scanner.stopDecode()
        if (receiverRegistered) unregisterReceiver(decodeReceiver)
        receiverRegistered = false
        scanner.closeScanner()
        super.onStop()
    }

    private fun onValidatedScan(value: String, type: Byte) {
        // Route a sanitized domain event; do not log sensitive barcode values.
    }
}
Projekt-Checkliste

ScanManager -Validierungscheckliste

Hängen Sie diesen Datensatz an den genehmigten Antrag und die Gerätebaseline an.

  1. 01

    SDK Version und SHA-256 aufgezeichnet

  2. 02

    Gerät SKU, Betriebssystem und Firmware aufgezeichnet

  3. 03

    Der Scanner öffnet und schließt sich wiederholt

  4. 04

    Ausgabemodus gelesen oder bestätigt

  5. 05

    Der Lebenszyklus des Empfängers entspricht der aktiven Benutzeroberfläche

  6. 06

    Raw-, String-, Längen- und Typ-Extras überprüft

  7. 07

    Alle erforderlichen Symbologien getestet

  8. 08

    Lange, beschädigte und schnelle Scans getestet

  9. 09

    Ruhezustand, Neustart und MDM Kioskmodus getestet

  10. 10

    Es werden keine sensiblen Barcode-Daten protokolliert

FAQ

Häufig gestellte Fragen

Was bedeutet switchOutputMode(0)?

Die API-Referenz dokumentiert den Wechsel des Ausgabemodus, aber Konstanten und Verhalten müssen in der genauen SDK-Version und Geräte-Firmware überprüft werden. Kopieren Sie die Beispielkonstante nicht ohne Überprüfung in die Produktion.

Soll der Scanner im OnPause- oder OnStop-Modus schließen?

Wählen Sie die Lebenszykluseigentümerschaft basierend auf der Anwendungsarchitektur und der Frage, ob das Scannen fortgesetzt werden darf, wenn es teilweise verdeckt ist. Die wichtige Voraussetzung ist ein Eigentümer, deterministische Bereinigung und getestetes Verhalten.

Kann dieses Beispiel auf jedem UROVO Gerät verwendet werden?

Nein. Es handelt sich um einen Validierungsentwurf basierend auf ScanManager v4.1.0326. Kompilieren Sie es und führen Sie es vor der Veröffentlichung auf jedem gewünschten Modell, Betriebssystem und jeder Firmware aus.

Beweise und Einschränkungen

SDK-referenzgestütztes Beispiel/nicht auf jeder Zielkonfiguration validiert

Der Code dient der Veranschaulichung und ruft bewusst versionenspezifische Konstanten und die Empfängerrichtlinie Android zur Überprüfung auf.

Bewertet: 2026-08-10

Quellregister
  • UROVO Android SDK v4.1.0326 ScanManager API Referenz
  • UROVO ScanManager -Beispielprojekt im genehmigten SDK-Export
  • Android Lebenszyklusdokumentation für Anwendungen und Rundfunkempfänger

Machen Sie aus diesem Leitfaden eine Projektentscheidung

Antragsvalidierung anfordern

Teilen Sie das Modell, die Firmware, die SDK-Basislinie und den Scan-Workflow. RuggedLayer wird einen reproduzierbaren Gerätevalidierungsplan festlegen.

Antragsvalidierung anfordern