UROVO Android SDK/Kotlin

UROVO ScanManager Kotlin voorbeeld en validatiechecklist

Deze implementatieblauwdruk past de goedgekeurde UROVO ScanManager API aan in een klein Kotlin activiteitsvoorbeeld. Het is voorbeeldcode voor validatie, geen belofte van compatibiliteit met elk UROVO-model of firmware.

16 min gelezenBeoordeeld: 2026-08-10Android ontwikkelaars die UROVO barcodehardware integreren
UROVO DT66 functieweergave voor Android ScanManager -integratie
SDK-referentie-backed voorbeeld/niet gevalideerd voor elke doelconfiguratie

Geverifieerde uitgangspunten

API basislijnUROVO Android SDK v4.1.0326

Gebruik het goedgekeurde pakket en noteer de artefactcontrolesom.

Kanaal decoderenScanManager.ACTION_DECODE uitzending

Lees gedocumenteerde gegevens, tekenreeksen, lengte- en type-extra's.

LevenscyclusOpenen en inschrijven; stoppen, uitschrijven en sluiten

Stem het eigendom af op de applicatiearchitectuur.

CompatibiliteitExact apparaat + besturingssysteem + firmware + SDK + app-build

De aanwezigheid van API alleen is geen geslaagde validatie.

Implementatie regel

Behandel ScanManager als een hardwarebron met een expliciete eigenaar. Open het, selecteer de beoogde uitvoermodus, registreer de decodeerontvanger, valideer elke payload, meld u vervolgens af en sluit deterministisch. Bevestig het gedrag van de methode op het productie-intentiemonster.

01

Bereid een reproduceerbare SDK basislijn voor

Verpak het goedgekeurde SDK-artefact via het gecontroleerde downloadproces voor ontwikkelaars. Registreer de versie en SHA-256 naast de applicatiebuild en het apparaatrecord.

Bewaar API's van leveranciers achter een scanneradapter, zodat de bedrijfslogica kan worden getest zonder hardware en een andere capture-implementatie kan worden vervangen.

  • Alleen goedgekeurde bron SDK.
  • Artefact-hash opgenomen
  • Adaptergrens gedefinieerd
  • Apparaatmatrix gemaakt
02

Bezit één keer de levenscyclus van de scanner

De API referentiedocumenten openenScanner, closeScanner, startDecode, stopDecode en uitvoermodusfuncties. Bepaal of de activiteit, een voorgrondservice of een ander applicatiegericht onderdeel eigenaar is van deze oproepen.

Voorkom dat meerdere schermen de scanner onafhankelijk openen. Maak stoppen en sluiten veilig om mislukte retourwaarden in de diagnostische status te herhalen en naar boven te halen zonder de payloads van streepjescodes te registreren.

  • Eigenaar van één resource
  • Idempotente schoonmaak
  • Retourwaarden waargenomen
  • Geen payloads in gewone logboeken
03

Valideer de uitgezonden payload

Een succesvolle decoderingsuitzending kan onbewerkte gegevens, een gedecodeerde reeks, lengte en streepjescodetype bevatten. Controleer actie, nullability en lengte voordat u een domeingebeurtenis levert.

Kies één gezaghebbende vertegenwoordiging. Als codering belangrijk is, bewaar dan onbewerkte bytes en decodeer onder een expliciete tekenset in plaats van aan te nemen dat elke streepjescode eenvoudig ASCII is.

  • Actie komt precies overeen
  • Lengte consistent met laadvermogen
  • Coderingsbeleid gedocumenteerd
  • Dubbele evenementenbewaker
04

Ga van demo naar productiebewijs

Succes bij het compileren bewijst alleen broncompatibiliteit. Voer de applicatie uit op elk beoogd model, besturingssysteem en firmware met representatieve labels en levenscyclusscenario's.

Registreer scannerinstellingen en de uitvoermodus na configuratie. Regressietest na wijzigingen in de firmware, SDK, applicatie of MDM beleid.

  • Representatief scancorpus
  • Slaap- en hervatcycli
  • Snelle en lange codegevallen
  • Versieversietestrecord
Beslissingsmatrix

ScanManager levenscyclusstatuskaart

Houd resourceaanroepen afgestemd op de waarneembare applicatiestatus.

StaatVereiste actieReactie op falen
BeginnenMaak ScanManager en open scannerBlokkeer opname en toon diagnostische status
KlaarStel de uitgangsmodus in en registreer de ontvangerLees de configuratiefout terug of rapporteer deze
VastleggenStart het decoderen of accepteer triggergebeurtenissenTime-out, stop en gecontroleerde nieuwe poging toestaan
GepauzeerdStop met decoderen en meld u af zoals ontworpenVoorkom levering aan een inactieve workflow
VernietigdSluit de scanner één keerRegistreer het opschoonresultaat zonder gevoelige gegevens
SDK

Minimaal levenscyclusbewust Kotlin voorbeeld

Controleer de uitvoermodusconstanten, Android ontvangervlaggen en het eigendom van de levenscyclus aan de hand van de exacte SDK, doel API en applicatiearchitectuur.

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.
    }
}
Projectchecklist

Validatiechecklist voor ScanManager

Voeg dit record toe aan de goedgekeurde applicatie en de basislijn van het apparaat.

  1. 01

    SDK versie en SHA-256 opgenomen

  2. 02

    Apparaat SKU, besturingssysteem en firmware vastgelegd

  3. 03

    Scanner wordt herhaaldelijk geopend en gesloten

  4. 04

    Uitgangsmodus gelezen of bevestigd

  5. 05

    De levenscyclus van de ontvanger komt overeen met de actieve gebruikersinterface

  6. 06

    Raw-, string-, lengte- en type-extra's gecontroleerd

  7. 07

    Alle vereiste symbologieën getest

  8. 08

    Lange, beschadigde en snelle scans getest

  9. 09

    Slaapstand, opnieuw opstarten en kioskmodus MDM getest

  10. 10

    Geen gevoelige barcodegegevens geregistreerd

FAQ

Veelgestelde vragen

Wat betekent switchOutputMode(0)?

De API-referentie documenteert het schakelen tussen uitvoermodi, maar constanten en gedrag moeten worden gecontroleerd in de exacte SDK-release en apparaatfirmware. Kopieer de monsterconstante niet zonder verificatie naar de productie.

Moet de scanner bij OnPause of OnStop sluiten?

Kies het eigendom van de levenscyclus op basis van de applicatiearchitectuur en of het scannen mag doorgaan als het gedeeltelijk verborgen is. De belangrijke vereiste is één eigenaar, deterministische opruiming en getest gedrag.

Kan dit voorbeeld op elk UROVO-apparaat worden gebruikt?

Nee. Het is een validatieblauwdruk gebaseerd op ScanManager v4.1.0326. Compileer en voer het uit op elk beoogd model, besturingssysteem en firmware voordat het wordt uitgebracht.

Bewijs en beperkingen

SDK-referentie-backed voorbeeld/niet gevalideerd voor elke doelconfiguratie

De code is illustratief en roept opzettelijk versiespecifieke constanten en Android ontvangerbeleid op ter verificatie.

Beoordeeld: 2026-08-10

Bron register
  • UROVO Android SDK v4.1.0326 ScanManager API referentie
  • UROVO ScanManager -voorbeeldproject in goedgekeurde SDK-export
  • Documentatie over de levenscyclus van Android -applicatie en uitzendingsontvanger

Zet deze handleiding om in een projectbesluit

Vraag applicatievalidatie aan

Deel het model, de firmware, de SDK basislijn en de scanworkflow. RuggedLayer zal een reproduceerbaar apparaatvalidatieplan opstellen.

Vraag applicatievalidatie aan