Uygulama kuralı
ScanManager 'ı açık sahibi olan bir donanım kaynağı olarak değerlendirin. Açın, amaçlanan çıkış modunu seçin, kod çözme alıcısını kaydedin, her yükü doğrulayın, ardından kaydı iptal edin ve belirleyici bir şekilde kapatın. Üretim amacı örneğinde yöntem davranışını doğrulayın.
Tekrarlanabilir bir SDK taban çizgisi hazırlayın
Onaylanan SDK yapıyı kontrollü geliştirici indirme süreci aracılığıyla paketleyin. Uygulama derlemesi ve cihaz kaydının yanı sıra sürümünü ve SHA-256 değerini kaydedin.
Satıcı API'lerini bir tarayıcı adaptörünün arkasında tutun, böylece iş mantığı donanım olmadan birim testine tabi tutulabilir ve bunun yerine başka bir yakalama uygulaması kullanılabilir.
- Yalnızca SDK kaynak onaylandı
- Yapı karması kaydedildi
- Bağdaştırıcı sınırı tanımlandı
- Cihaz matrisi oluşturuldu
Tarayıcı yaşam döngüsüne bir kez sahip olun
API referansı openScanner, closeScanner, startDecode, stopDecode ve çıktı modu işlevlerini belgelemektedir. Etkinliğin, bir ön plan hizmetinin veya başka bir uygulama kapsamlı bileşenin bu çağrılara sahip olup olmadığına karar verin.
Birden fazla ekranın tarayıcıyı bağımsız olarak açmasını önleyin. Barkod verilerini günlüğe kaydetmeden, tanılama durumunda başarısız dönüş değerlerini tekrarlamak ve yüzeye çıkarmak için durdurmayı ve kapatmayı güvenli hale getirin.
- Tek kaynak sahibi
- İdempotent temizleme
- Gözlemlenen dönüş değerleri
- Sıradan günlüklerde veri yok
Yayın yükünü doğrulama
Başarılı bir kod çözme yayını, ham verileri, kodu çözülmüş bir diziyi, uzunluğu ve barkod türünü içerebilir. Bir etki alanı olayını iletmeden önce işlemi, geçersiz kılınabilirliği ve uzunluğu kontrol edin.
Bir yetkili temsil seçin. Kodlama önemliyse, her barkodun basit ASCII olduğunu varsaymak yerine ham baytları koruyun ve kodu açık bir karakter kümesi altında çözün.
- Eylem tam olarak eşleşiyor
- Yüke uygun uzunluk
- Kodlama politikası belgelendi
- Yinelenen olay koruması
Demodan üretim kanıtlarına geçiş
Derleme başarısı yalnızca kaynak uyumluluğunu kanıtlar. Uygulamayı amaçlanan her model, işletim sistemi ve ürün yazılımı üzerinde temsili etiketler ve yaşam döngüsü senaryolarıyla çalıştırın.
Yapılandırmadan sonra tarayıcı ayarlarını ve çıkış modunu kaydedin. Ürün yazılımı, SDK, uygulama veya MDM politika değişikliklerinden sonra regresyon testi.
- Temsilci tarama külliyatı
- Uyku ve devam etme döngüleri
- Hızlı ve uzun kod vakaları
- Sürümlendirilmiş test kaydı
ScanManager yaşam döngüsü durum haritası
Kaynak çağrılarını gözlemlenebilir uygulama durumuyla uyumlu tutun.
| Eyalet | Gerekli eylem | Arıza yanıtı |
|---|---|---|
| Başlangıç | ScanManager 'ı oluşturun ve tarayıcıyı açın | Yakalamayı engelle ve teşhis durumunu göster |
| Hazır | Çıkış modunu ayarlayın ve alıcıyı kaydedin | Tekrar okuyun veya yapılandırma hatasını bildirin |
| Yakalama | Tetikleyici olayların kodunu çözmeye başlayın veya kabul edin | Zaman aşımı, durdurma ve kontrollü yeniden denemeye izin verme |
| Duraklatıldı | Kod çözmeyi durdurun ve tasarlandığı gibi kaydı iptal edin | Etkin olmayan iş akışına teslimatı önleyin |
| yok edildi | Tarayıcıyı bir kez kapatın | Temizleme sonucunu hassas veriler olmadan kaydedin |
Minimum yaşam döngüsüne duyarlı Kotlin örneği
Çıkış modu sabitlerini, Android alıcı işaretlerini ve yaşam döngüsü sahipliğini tam SDK, hedef API ve uygulama mimarisine göre doğrulayın.
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.
}
}ScanManager doğrulama kontrol listesi
Bu kaydı onaylanmış uygulamaya ve cihaz temel çizgisine ekleyin.
- 01
SDK sürümü ve SHA-256 kaydedildi
- 02
Cihaz SKU, işletim sistemi ve donanım yazılımı kaydedildi
- 03
Tarayıcı tekrar tekrar açılıp kapanıyor
- 04
Çıkış modu okundu veya onaylandı
- 05
Alıcı yaşam döngüsü aktif kullanıcı arayüzüyle eşleşir
- 06
Ham, dize, uzunluk ve tür ekstraları kontrol edildi
- 07
Gerekli tüm sembolojiler test edildi
- 08
Uzun, hasarlı ve hızlı taramalar test edildi
- 09
Uyku, yeniden başlatma ve MDM kiosk modu test edildi
- 10
Hiçbir hassas barkod verisi kaydedilmedi
Sık sorulan sorular
switchOutputMode(0) ne anlama geliyor?
API referansı, çıkış modu geçişini belgelemektedir, ancak sabitler ve davranış, tam SDK sürümünde ve cihaz donanım yazılımında kontrol edilmelidir. Numune sabitini doğrulama olmadan üretime kopyalamayın.
Tarayıcı Duraklatıldığında mı yoksa Durdurulduğunda mı kapanmalı?
Uygulama mimarisine ve kısmen gizlendiğinde taramanın devam edip etmeyeceğine bağlı olarak yaşam döngüsü sahipliğini seçin. Önemli gereksinim tek sahip, deterministik temizlik ve test edilmiş davranıştır.
Bu örnek her UROVO cihazda kullanılabilir mi?
Hayır. ScanManager v4.1.0326 tabanlı bir doğrulama planıdır. Yayınlanmadan önce amaçlanan her model, işletim sistemi ve ürün yazılımı üzerinde derleyin ve çalıştırın.
Kanıtlar ve sınırlamalar
SDK-referans destekli örnek/her hedef yapılandırmada doğrulanmadı
Kod açıklayıcıdır ve doğrulama için kasıtlı olarak sürüme özel sabitleri ve Android alıcı politikasını çağırır.
İncelendi: 2026-08-10
- UROVO Android SDK v4.1.0326 ScanManager API referansı
- Onaylanmış SDK dışa aktarmada UROVO ScanManager örnek projesi
- Android uygulama ve yayın alıcısı yaşam döngüsü belgeleri

