UROVO Android SDK/Kotlin

UROVO ScanManager Kotlin contoh dan daftar periksa validasi

Cetak biru implementasi ini mengadaptasi UROVO ScanManager API yang disetujui menjadi contoh aktivitas kecil Kotlin. Ini adalah kode contoh untuk validasi, bukan janji kompatibilitas dengan setiap model atau firmware UROVO.

16 mnt dibacaDitinjau: 2026-08-10Pengembang Android mengintegrasikan perangkat keras kode batang UROVO
Tampilan fitur UROVO DT66 untuk integrasi ScanManager Android
SDK-sampel yang didukung referensi/tidak divalidasi pada setiap konfigurasi target

Titik awal yang terverifikasi

API garis dasarUROVO Android SDK v4.1.0326

Gunakan paket yang disetujui dan catat checksum artefak.

Dekode saluranSiaran ScanManager.ACTION_DECODE

Baca data yang didokumentasikan, string, panjang dan ketik tambahan.

Siklus hidupBuka dan daftar; berhenti, batalkan pendaftaran, dan tutup

Cocokkan kepemilikan dengan arsitektur aplikasi.

KompatibilitasPerangkat persis + OS + firmware + SDK + versi aplikasi

Kehadiran API saja bukan merupakan validasi yang lolos.

Aturan implementasi

Perlakukan ScanManager sebagai sumber daya perangkat keras dengan pemilik eksplisit. Buka, pilih mode keluaran yang diinginkan, daftarkan penerima dekode, validasi setiap muatan, lalu batalkan pendaftaran dan tutup secara deterministik. Konfirmasikan perilaku metode pada sampel maksud produksi.

01

Siapkan baseline SDK yang dapat direproduksi

Kemas artefak SDK yang disetujui melalui proses pengunduhan pengembang yang terkontrol. Catat versinya dan SHA-256 di samping pembuatan aplikasi dan catatan perangkat.

Simpan API vendor di belakang adaptor pemindai sehingga logika bisnis dapat diuji unitnya tanpa perangkat keras dan implementasi penangkapan lainnya dapat diganti.

  • Hanya sumber SDK yang disetujui
  • Hash artefak dicatat
  • Batas adaptor ditentukan
  • Matriks perangkat dibuat
02

Miliki siklus hidup pemindai satu kali

Referensi API mendokumentasikan fungsi openScanner, closeScanner, startDecode, stopDecode dan mode keluaran. Putuskan apakah aktivitas, layanan latar depan, atau komponen cakupan aplikasi lainnya memiliki panggilan tersebut.

Hindari beberapa layar membuka pemindai secara terpisah. Jadikan penghentian dan penutupan aman untuk diulang dan tampilkan nilai pengembalian yang gagal dalam status diagnostik tanpa mencatat muatan kode batang.

  • Pemilik sumber daya tunggal
  • Pembersihan idempoten
  • Nilai kembalian diamati
  • Tidak ada muatan di log biasa
03

Validasi payload siaran

Siaran dekode yang berhasil dapat mencakup data mentah, string yang didekode, panjang, dan jenis kode batang. Periksa tindakan, nullability, dan panjangnya sebelum mengirimkan peristiwa domain.

Pilih satu representasi otoritatif. Jika pengkodean penting, pertahankan byte mentah dan dekode di bawah rangkaian karakter eksplisit alih-alih menganggap setiap kode batang adalah ASCII sederhana.

  • Tindakannya sama persis
  • Panjangnya konsisten dengan muatan
  • Kebijakan pengkodean didokumentasikan
  • Duplikat penjaga acara
04

Beralih dari bukti demo ke bukti produksi

Keberhasilan kompilasi hanya membuktikan kompatibilitas sumber. Jalankan aplikasi pada setiap model, OS, dan firmware yang diinginkan dengan label representatif dan skenario siklus hidup.

Rekam pengaturan pemindai dan mode keluaran setelah konfigurasi. Uji regresi setelah perubahan firmware, SDK, aplikasi, atau kebijakan MDM.

  • Korpus pemindaian yang representatif
  • Siklus tidur dan melanjutkan
  • Kasus cepat dan kode panjang
  • Catatan pengujian berversi
Matriks keputusan

Peta status siklus hidup ScanManager

Jaga agar panggilan sumber daya tetap selaras dengan status aplikasi yang dapat diamati.

NegaraTindakan yang diperlukanRespon kegagalan
MulaiBuat ScanManager dan buka pemindaiBlokir pengambilan dan tampilkan status diagnostik
SiapAtur mode keluaran dan daftarkan penerimaBaca kembali atau laporkan kegagalan konfigurasi
MenangkapMulai dekode atau terima peristiwa pemicuBatas waktu, hentikan, dan izinkan percobaan ulang terkontrol
DijedaHentikan dekode dan batalkan pendaftaran seperti yang dirancangCegah pengiriman ke alur kerja yang tidak aktif
HancurTutup pemindai sekaliRekam hasil pembersihan tanpa data sensitif
SDK

Contoh Kotlin yang sadar siklus hidup minimal

Verifikasi konstanta mode keluaran, tanda penerima Android, dan kepemilikan siklus hidup terhadap SDK, target API, dan arsitektur aplikasi yang tepat.

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.
    }
}
Daftar periksa proyek

Daftar periksa validasi ScanManager

Lampirkan catatan ini ke aplikasi yang disetujui dan data dasar perangkat.

  1. 01

    Versi SDK dan SHA-256 direkam

  2. 02

    Perangkat SKU, OS dan firmware direkam

  3. 03

    Pemindai membuka dan menutup berulang kali

  4. 04

    Mode keluaran dibaca atau dikonfirmasi

  5. 05

    Siklus hidup penerima cocok dengan UI aktif

  6. 06

    Ekstra mentah, string, panjang, dan tipe dicentang

  7. 07

    Semua simbologi yang diperlukan diuji

  8. 08

    Pemindaian yang panjang, rusak, dan cepat diuji

  9. 09

    Mode tidur, boot ulang, dan mode kios MDM diuji

  10. 10

    Tidak ada data kode batang sensitif yang dicatat

FAQ

Pertanyaan yang sering diajukan

Apa yang dimaksud dengan switchOutputMode(0) ?

Referensi API mendokumentasikan peralihan mode keluaran, tetapi konstanta dan perilaku harus diperiksa dalam rilis SDK dan firmware perangkat yang tepat. Jangan menyalin konstanta sampel ke dalam produksi tanpa verifikasi.

Haruskah pemindai ditutup saat onPause atau onStop?

Pilih kepemilikan siklus hidup berdasarkan arsitektur aplikasi dan apakah pemindaian dapat dilanjutkan ketika sebagian dikaburkan. Persyaratan penting adalah satu pemilik, pembersihan deterministik, dan perilaku teruji.

Bisakah sampel ini digunakan di setiap perangkat UROVO ?

Tidak. Ini adalah cetak biru validasi berdasarkan ScanManager v4.1.0326. Kompilasi dan jalankan pada setiap model, OS, dan firmware yang diinginkan sebelum dirilis.

Bukti dan keterbatasan

SDK-sampel yang didukung referensi/tidak divalidasi pada setiap konfigurasi target

Kode ini bersifat ilustratif dan sengaja menampilkan konstanta khusus versi dan kebijakan penerima Android untuk verifikasi.

Ditinjau: 2026-08-10

Daftar sumber
  • UROVO Android SDK v4.1.0326 Referensi ScanManager API
  • UROVO contoh proyek ScanManager dalam ekspor SDK yang disetujui
  • Aplikasi Android dan dokumentasi siklus hidup penerima siaran

Ubah panduan ini menjadi keputusan proyek

Minta validasi aplikasi

Bagikan model, firmware, garis dasar SDK, dan alur kerja pemindaian. RuggedLayer akan mencakup rencana validasi perangkat yang dapat direproduksi.

Minta validasi aplikasi