Herkese açık kaynaklar tekrarlanabilir entegrasyon modellerine odaklanır. Kısıtlı SDK'lar, donanım yazılımları ve belgeler onaylı dağıtım kanallarında kalır.
Yöntemleri, sürümleri ve sınırlamaları açıklanmış karşılaştırılabilir cihaz testleri.
- Barkod sonucu gerektiren tek iş akışına sahip bir Android uygulaması.
- Tam hedef model, Android yapısı ve onaylanmış cihaz SDK belirlendi.
- Takoz, amaç veya doğrudan SDK aktarım hakkında bir karar; yanlışlıkla karıştırmayın.
Yayıncılık standardı
Kurumsal Android entegrasyonlarını sürümlendirilmiş kanıtlarla oluşturun ve doğrulayın.
Herkese açık kaynaklar tekrarlanabilir entegrasyon modellerine odaklanır. Kısıtlı SDK'lar, donanım yazılımları ve belgeler onaylı dağıtım kanallarında kalır.
- 01
İş akışı için taşımayı seçin
Odaklanmış bir formun hızlı bir şekilde yenilenmesi gerektiğinde kama kullanın. Uygulama, olayın sahibi olduğunda açık bir amaç veya geri arama kullanın. İş ekranlarının satıcı türlerine bağlı olmaması için yalnızca küçük bir adaptörün arkasında doğrudan bir cihaz API kullanın.
- 02
Uygulamanızın sahip olduğu etkinliği tanımlayın
Kodu çözülmüş metni, ham baytları, sembolojiyi ve alınan zamanı bir arada tutun. Taşıma yükünü güvenilmeyen giriş olarak değerlendirin ve eksik, büyük boyutlu veya kodu çözülemeyen verileri envanter mantığına ulaşmadan reddedin.
- 03
Tek sahipte açın, dinleyin, başlatın ve durdurun
Kod çözmeye başlamadan önce sonuç yolunu kaydedin. Yalnızca bir kez başlatın, iş akışı sona erdiğinde durun ve cihaz kaynağını arka plan, iptal ve hatalar dahil tüm çıkış yollarından kapatın.
- 04
Mutsuz yolları kanıtla
Boş bir veriyi, yinelenen sonucu, zaman aşımını, desteklenmeyen sembolojiyi, ekran özgeçmişini ve tarayıcı seçeneği olmayan bir cihazı test edin. Bir cihazdaki yeşil tarama, her konfigürasyon için bir uyumluluk bildirimi değildir.
Örnek uygulamalar / Kotlin
SDK ve API kalıpları
Orijinal adaptör modeli. CapturePort'u özel Android projenizdeki onaylı cihaza SDK bağlayın.
data class CaptureEvent(
val value: String,
val symbology: String?,
val capturedAt: Instant,
)
interface CapturePort {
fun open()
fun start()
fun stop()
fun close()
fun setListener(listener: (CaptureEvent) -> Unit)
}
class ScanWorkflow(private val scanner: CapturePort) {
private var active = false
fun begin(onCapture: (CaptureEvent) -> Unit) {
if (active) return
scanner.open()
scanner.setListener(onCapture)
scanner.start()
active = true
}
fun end() {
if (!active) return
runCatching { scanner.stop() }
runCatching { scanner.close() }
active = false
}
}SDK dağıtımı
Yayın kapısı
Yeniden dağıtım izni ve desteklenen kapsam kaydedilene kadar hiçbir üretici ikili dosyası, API referansı, ürün yazılımı veya kaynak kod örneği yayınlanmaz.
Bir giriş hatası döndürün ve iş akışını başka bir tarama için kullanılabilir durumda tutun.
Kısa ömürlü bir olay anahtarıyla tekilleştirme; Asla sessizce envanteri iki kez almayın.
Mevcut işlemi durdurun, kurtarılabilir bir durumu gösterin ve kontrollü bir yeniden denemeye izin verin.
İş akışı sözleşmesine göre durdurun veya duraklatın, ardından devam ettirirken güvenli bir şekilde yeniden kaydolun.
Kanıt durumları
Yöntemleri, sürümleri ve sınırlamaları açıklanmış karşılaştırılabilir cihaz testleri.
- 01
Kayıt modeli, tarayıcı seçeneği, Android yapısı, bellenim ve SDK sürümü.
- 02
Soğuk başlatma, tekrarlanan başlatma/stop, arka plan/resume ve iptal testlerini çalıştırın.
- 03
128 Kodunu, hasarlı bir etiketi, boş bir tetikleyiciyi ve desteklenmeyen bir sembolojiyi kullanın.
- 04
Sıradan günlüklere hiçbir ham tarama verisinin veya müşteri tanımlayıcısının yazılmadığını doğrulayın.
Kaynaklar
SDK ve API kalıpları
Yeniden dağıtım izni ve desteklenen kapsam kaydedilene kadar hiçbir üretici ikili dosyası, API referansı, ürün yazılımı veya kaynak kod örneği yayınlanmaz.