กฎการดำเนินการ
ถือว่า ScanManager เป็นทรัพยากรฮาร์ดแวร์ที่มีเจ้าของที่ชัดเจน เปิดมัน เลือกโหมดเอาต์พุตที่ต้องการ ลงทะเบียนตัวรับการถอดรหัส ตรวจสอบทุกเพย์โหลด จากนั้นยกเลิกการลงทะเบียนและปิดตามกำหนด ยืนยันพฤติกรรมของวิธีการในตัวอย่างที่มีจุดประสงค์ในการผลิต
เตรียมพื้นฐาน SDK ที่ทำซ้ำได้
รวบรวมอาร์ติแฟกต์ SDK ที่ได้รับอนุมัติแล้วผ่านกระบวนการดาวน์โหลดของนักพัฒนาที่ได้รับการควบคุม บันทึกเวอร์ชันและ SHA-256 ควบคู่ไปกับบิลด์แอปพลิเคชันและบันทึกอุปกรณ์
เก็บ API ของผู้จำหน่ายไว้ด้านหลังอะแดปเตอร์สแกนเนอร์ เพื่อให้สามารถทดสอบหน่วยตรรกะทางธุรกิจได้โดยไม่ต้องใช้ฮาร์ดแวร์ และสามารถทดแทนการใช้งานการบันทึกอื่นได้
- อนุมัติแหล่งที่มา SDK เท่านั้น
- บันทึกแฮชของสิ่งประดิษฐ์แล้ว
- กำหนดขอบเขตของอะแดปเตอร์แล้ว
- สร้างเมทริกซ์อุปกรณ์แล้ว
เป็นเจ้าของวงจรการใช้งานเครื่องสแกนหนึ่งครั้ง
เอกสารอ้างอิง API อ้างอิง openScanner, closeScanner, startDecode, stopDecode และฟังก์ชันโหมดเอาต์พุต ตัดสินใจว่ากิจกรรม บริการเบื้องหน้า หรือส่วนประกอบขอบเขตแอปพลิเคชันอื่นเป็นเจ้าของการโทรเหล่านั้นหรือไม่
หลีกเลี่ยงการเปิดหน้าจอหลายหน้าจอโดยแยกจากกัน ทำให้การหยุดและปิดปลอดภัยในการทำซ้ำ และแสดงค่าที่ส่งคืนที่ล้มเหลวในสถานะการวินิจฉัยโดยไม่ต้องบันทึกน้ำหนักบรรทุกของบาร์โค้ด
- เจ้าของทรัพยากรรายเดียว
- การล้างข้อมูลแบบ Idempotent
- ส่งกลับค่าที่สังเกตได้
- ไม่มีเพย์โหลดในบันทึกธรรมดา
ตรวจสอบเพย์โหลดการออกอากาศ
การถ่ายทอดการถอดรหัสที่ประสบความสำเร็จอาจรวมถึงข้อมูลดิบ สตริงที่ถอดรหัส ความยาว และประเภทบาร์โค้ด ตรวจสอบการดำเนินการ ความเป็นโมฆะ และความยาวก่อนส่งมอบกิจกรรมโดเมน
เลือกตัวแทนที่เชื่อถือได้หนึ่งรายการ หากการเข้ารหัสมีความสำคัญ ให้คงไบต์ดิบไว้และถอดรหัสภายใต้ชุดอักขระที่ชัดเจน แทนที่จะถือว่าบาร์โค้ดทุกอันเป็นแบบ ASCII แบบธรรมดา
- การกระทำตรงกันทุกประการ
- ความยาวสอดคล้องกับน้ำหนักบรรทุก
- นโยบายการเข้ารหัสได้รับการจัดทำเป็นเอกสาร
- ตัวป้องกันเหตุการณ์ที่ซ้ำกัน
ย้ายจากการสาธิตไปสู่หลักฐานการใช้งานจริง
ความสำเร็จในการคอมไพล์พิสูจน์ให้เห็นถึงความเข้ากันได้ของแหล่งที่มาเท่านั้น รันแอปพลิเคชันบนรุ่น ระบบปฏิบัติการ และเฟิร์มแวร์ที่ต้องการแต่ละรุ่นพร้อมป้ายกำกับตัวแทนและสถานการณ์วงจรการใช้งาน
บันทึกการตั้งค่าเครื่องสแกนและโหมดเอาต์พุตหลังการกำหนดค่า การทดสอบการถดถอยหลังจากเฟิร์มแวร์ SDK แอปพลิเคชันหรือ MDM เปลี่ยนแปลงนโยบาย
- ตัวแทนการสแกนคลังข้อมูล
- เข้าสู่โหมดสลีปและทำต่อ
- กรณีรหัสที่รวดเร็วและยาว
- บันทึกการทดสอบเวอร์ชัน
แผนที่สถานะวงจรการใช้งาน ScanManager
รักษาการเรียกทรัพยากรให้สอดคล้องกับสถานะแอปพลิเคชันที่สังเกตได้
| รัฐ | การดำเนินการที่จำเป็น | การตอบสนองความล้มเหลว |
|---|---|---|
| กำลังเริ่มต้น | สร้าง ScanManager และเปิดสแกนเนอร์ | บล็อกการจับภาพและแสดงสถานะการวินิจฉัย |
| พร้อม | ตั้งค่าโหมดเอาต์พุตและตัวรับสัญญาณรีจิสเตอร์ | อ่านกลับหรือรายงานการกำหนดค่าล้มเหลว |
| กำลังจับ | เริ่มถอดรหัสหรือยอมรับเหตุการณ์ทริกเกอร์ | หมดเวลา หยุดและอนุญาตการลองใหม่ที่มีการควบคุม |
| หยุดชั่วคราว | หยุดถอดรหัสและยกเลิกการลงทะเบียนตามที่ออกแบบไว้ | ป้องกันการส่งไปยังเวิร์กโฟลว์ที่ไม่ได้ใช้งาน |
| ถูกทำลาย | ปิดเครื่องสแกนหนึ่งครั้ง | บันทึกผลการล้างข้อมูลโดยไม่มีข้อมูลที่ละเอียดอ่อน |
ตัวอย่าง Kotlin ที่ทราบรอบการใช้งานน้อยที่สุด
ตรวจสอบค่าคงที่ของโหมดเอาต์พุต แฟล็กตัวรับ Android และความเป็นเจ้าของวงจรการใช้งานกับ SDK เป้าหมาย API และสถาปัตยกรรมแอปพลิเคชันที่แน่นอน
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
แนบบันทึกนี้กับแอปพลิเคชันและอุปกรณ์พื้นฐานที่ได้รับอนุมัติ
- 01
บันทึกเวอร์ชัน SDK และ SHA-256 แล้ว
- 02
อุปกรณ์ SKU, ระบบปฏิบัติการและเฟิร์มแวร์ที่บันทึกไว้
- 03
เครื่องสแกนเปิดและปิดซ้ำๆ
- 04
โหมดเอาต์พุตอ่านหรือยืนยันแล้ว
- 05
วงจรชีวิตของตัวรับตรงกับ UI ที่ใช้งานอยู่
- 06
ตรวจสอบค่าดิบ สตริง ความยาว และประเภทเพิ่มเติมแล้ว
- 07
ทดสอบสัญลักษณ์ที่จำเป็นทั้งหมดแล้ว
- 08
ทดสอบการสแกนที่ยาว เสียหาย และรวดเร็ว
- 09
ทดสอบโหมดสลีป รีบูต และ MDM แล้ว
- 10
ไม่มีการบันทึกข้อมูลบาร์โค้ดที่ละเอียดอ่อน
คำถามที่พบบ่อย
switchOutputMode(0) หมายถึงอะไร
เอกสารอ้างอิง API อ้างอิงถึงการสลับโหมดเอาต์พุต แต่ต้องตรวจสอบค่าคงที่และลักษณะการทำงานในรุ่น SDK และเฟิร์มแวร์ของอุปกรณ์ที่แน่นอน อย่าคัดลอกค่าคงที่ตัวอย่างไปยังการผลิตโดยไม่มีการตรวจสอบยืนยัน
เครื่องสแกนควรปิดใน onPause หรือ onStop?
เลือกความเป็นเจ้าของวงจรชีวิตโดยพิจารณาจากสถาปัตยกรรมของแอปพลิเคชัน และเลือกว่าการสแกนอาจดำเนินต่อไปเมื่อถูกบดบังบางส่วนหรือไม่ ข้อกำหนดที่สำคัญคือเจ้าของหนึ่งราย การล้างข้อมูลตามที่กำหนด และพฤติกรรมที่ทดสอบ
ตัวอย่างนี้สามารถใช้กับอุปกรณ์ UROVO ทุกเครื่องได้หรือไม่
ไม่ มันเป็นพิมพ์เขียวการตรวจสอบความถูกต้องตาม ScanManager v4.1.0326 คอมไพล์และรันบนรุ่น ระบบปฏิบัติการ และเฟิร์มแวร์ที่ต้องการแต่ละรุ่นก่อนเผยแพร่
หลักฐานและข้อจำกัด
SDK-ตัวอย่างที่ได้รับการสนับสนุนจากการอ้างอิง / ไม่ได้รับการตรวจสอบในทุกการกำหนดค่าเป้าหมาย
โค้ดนี้แสดงให้เห็นอย่างชัดเจนและจงใจเรียกค่าคงที่เฉพาะเวอร์ชันและนโยบายตัวรับ Android เพื่อการตรวจสอบ
ตรวจสอบแล้ว: 2026-08-10
- UROVO Android SDK v4.1.0326 การอ้างอิง ScanManager API
- UROVO โครงการตัวอย่าง ScanManager ในการส่งออก SDK ที่ได้รับอนุมัติ
- Android เอกสารวงจรการใช้งานของแอปพลิเคชันและตัวรับการออกอากาศ

