UROVO Android SDK/Kotlin

UROVO ตัวอย่าง ScanManager Kotlin และรายการตรวจสอบความถูกต้อง

พิมพ์เขียวการใช้งานนี้จะปรับ ScanManager UROVO API ที่ได้รับอนุมัติให้เป็นตัวอย่างกิจกรรม Kotlin ขนาดเล็ก เป็นโค้ดตัวอย่างสำหรับการตรวจสอบ ไม่ใช่คำมั่นสัญญาว่าจะเข้ากันได้กับรุ่นหรือเฟิร์มแวร์ UROVO ทุกรุ่น

16 นาทีที่อ่านตรวจสอบแล้ว: 2026-08-10นักพัฒนา Android กำลังรวมฮาร์ดแวร์บาร์โค้ด UROVO ไว้ด้วยกัน
UROVO มุมมองคุณลักษณะ DT66 สำหรับ Android การรวม ScanManager
SDK-ตัวอย่างที่ได้รับการสนับสนุนจากการอ้างอิง / ไม่ได้รับการตรวจสอบในทุกการกำหนดค่าเป้าหมาย

จุดเริ่มต้นที่ตรวจสอบแล้ว

API พื้นฐานUROVO Android SDK v4.1.0326

ใช้แพ็คเกจที่ได้รับอนุมัติและบันทึกการตรวจสอบผลรวมของสิ่งประดิษฐ์

ถอดรหัสช่องScanManager.ACTION_DECODE ออกอากาศ

อ่านเอกสารข้อมูล สตริง ความยาว และประเภทพิเศษ

วงจรชีวิตเปิดและลงทะเบียน; หยุด ยกเลิกการลงทะเบียน และปิด

จับคู่ความเป็นเจ้าของกับสถาปัตยกรรมแอปพลิเคชัน

ความเข้ากันได้อุปกรณ์ที่แน่นอน + OS + เฟิร์มแวร์ + SDK + บิลด์แอป

การแสดงตน API เพียงอย่างเดียวไม่ผ่านการตรวจสอบ

กฎการดำเนินการ

ถือว่า ScanManager เป็นทรัพยากรฮาร์ดแวร์ที่มีเจ้าของที่ชัดเจน เปิดมัน เลือกโหมดเอาต์พุตที่ต้องการ ลงทะเบียนตัวรับการถอดรหัส ตรวจสอบทุกเพย์โหลด จากนั้นยกเลิกการลงทะเบียนและปิดตามกำหนด ยืนยันพฤติกรรมของวิธีการในตัวอย่างที่มีจุดประสงค์ในการผลิต

01

เตรียมพื้นฐาน SDK ที่ทำซ้ำได้

รวบรวมอาร์ติแฟกต์ SDK ที่ได้รับอนุมัติแล้วผ่านกระบวนการดาวน์โหลดของนักพัฒนาที่ได้รับการควบคุม บันทึกเวอร์ชันและ SHA-256 ควบคู่ไปกับบิลด์แอปพลิเคชันและบันทึกอุปกรณ์

เก็บ API ของผู้จำหน่ายไว้ด้านหลังอะแดปเตอร์สแกนเนอร์ เพื่อให้สามารถทดสอบหน่วยตรรกะทางธุรกิจได้โดยไม่ต้องใช้ฮาร์ดแวร์ และสามารถทดแทนการใช้งานการบันทึกอื่นได้

  • อนุมัติแหล่งที่มา SDK เท่านั้น
  • บันทึกแฮชของสิ่งประดิษฐ์แล้ว
  • กำหนดขอบเขตของอะแดปเตอร์แล้ว
  • สร้างเมทริกซ์อุปกรณ์แล้ว
02

เป็นเจ้าของวงจรการใช้งานเครื่องสแกนหนึ่งครั้ง

เอกสารอ้างอิง API อ้างอิง openScanner, closeScanner, startDecode, stopDecode และฟังก์ชันโหมดเอาต์พุต ตัดสินใจว่ากิจกรรม บริการเบื้องหน้า หรือส่วนประกอบขอบเขตแอปพลิเคชันอื่นเป็นเจ้าของการโทรเหล่านั้นหรือไม่

หลีกเลี่ยงการเปิดหน้าจอหลายหน้าจอโดยแยกจากกัน ทำให้การหยุดและปิดปลอดภัยในการทำซ้ำ และแสดงค่าที่ส่งคืนที่ล้มเหลวในสถานะการวินิจฉัยโดยไม่ต้องบันทึกน้ำหนักบรรทุกของบาร์โค้ด

  • เจ้าของทรัพยากรรายเดียว
  • การล้างข้อมูลแบบ Idempotent
  • ส่งกลับค่าที่สังเกตได้
  • ไม่มีเพย์โหลดในบันทึกธรรมดา
03

ตรวจสอบเพย์โหลดการออกอากาศ

การถ่ายทอดการถอดรหัสที่ประสบความสำเร็จอาจรวมถึงข้อมูลดิบ สตริงที่ถอดรหัส ความยาว และประเภทบาร์โค้ด ตรวจสอบการดำเนินการ ความเป็นโมฆะ และความยาวก่อนส่งมอบกิจกรรมโดเมน

เลือกตัวแทนที่เชื่อถือได้หนึ่งรายการ หากการเข้ารหัสมีความสำคัญ ให้คงไบต์ดิบไว้และถอดรหัสภายใต้ชุดอักขระที่ชัดเจน แทนที่จะถือว่าบาร์โค้ดทุกอันเป็นแบบ ASCII แบบธรรมดา

  • การกระทำตรงกันทุกประการ
  • ความยาวสอดคล้องกับน้ำหนักบรรทุก
  • นโยบายการเข้ารหัสได้รับการจัดทำเป็นเอกสาร
  • ตัวป้องกันเหตุการณ์ที่ซ้ำกัน
04

ย้ายจากการสาธิตไปสู่หลักฐานการใช้งานจริง

ความสำเร็จในการคอมไพล์พิสูจน์ให้เห็นถึงความเข้ากันได้ของแหล่งที่มาเท่านั้น รันแอปพลิเคชันบนรุ่น ระบบปฏิบัติการ และเฟิร์มแวร์ที่ต้องการแต่ละรุ่นพร้อมป้ายกำกับตัวแทนและสถานการณ์วงจรการใช้งาน

บันทึกการตั้งค่าเครื่องสแกนและโหมดเอาต์พุตหลังการกำหนดค่า การทดสอบการถดถอยหลังจากเฟิร์มแวร์ SDK แอปพลิเคชันหรือ MDM เปลี่ยนแปลงนโยบาย

  • ตัวแทนการสแกนคลังข้อมูล
  • เข้าสู่โหมดสลีปและทำต่อ
  • กรณีรหัสที่รวดเร็วและยาว
  • บันทึกการทดสอบเวอร์ชัน
เมทริกซ์การตัดสินใจ

แผนที่สถานะวงจรการใช้งาน ScanManager

รักษาการเรียกทรัพยากรให้สอดคล้องกับสถานะแอปพลิเคชันที่สังเกตได้

รัฐการดำเนินการที่จำเป็นการตอบสนองความล้มเหลว
กำลังเริ่มต้นสร้าง ScanManager และเปิดสแกนเนอร์บล็อกการจับภาพและแสดงสถานะการวินิจฉัย
พร้อมตั้งค่าโหมดเอาต์พุตและตัวรับสัญญาณรีจิสเตอร์อ่านกลับหรือรายงานการกำหนดค่าล้มเหลว
กำลังจับเริ่มถอดรหัสหรือยอมรับเหตุการณ์ทริกเกอร์หมดเวลา หยุดและอนุญาตการลองใหม่ที่มีการควบคุม
หยุดชั่วคราวหยุดถอดรหัสและยกเลิกการลงทะเบียนตามที่ออกแบบไว้ป้องกันการส่งไปยังเวิร์กโฟลว์ที่ไม่ได้ใช้งาน
ถูกทำลายปิดเครื่องสแกนหนึ่งครั้งบันทึกผลการล้างข้อมูลโดยไม่มีข้อมูลที่ละเอียดอ่อน
SDK

ตัวอย่าง Kotlin ที่ทราบรอบการใช้งานน้อยที่สุด

ตรวจสอบค่าคงที่ของโหมดเอาต์พุต แฟล็กตัวรับ Android และความเป็นเจ้าของวงจรการใช้งานกับ SDK เป้าหมาย API และสถาปัตยกรรมแอปพลิเคชันที่แน่นอน

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.
    }
}
รายการตรวจสอบโครงการ

รายการตรวจสอบการตรวจสอบ ScanManager

แนบบันทึกนี้กับแอปพลิเคชันและอุปกรณ์พื้นฐานที่ได้รับอนุมัติ

  1. 01

    บันทึกเวอร์ชัน SDK และ SHA-256 แล้ว

  2. 02

    อุปกรณ์ SKU, ระบบปฏิบัติการและเฟิร์มแวร์ที่บันทึกไว้

  3. 03

    เครื่องสแกนเปิดและปิดซ้ำๆ

  4. 04

    โหมดเอาต์พุตอ่านหรือยืนยันแล้ว

  5. 05

    วงจรชีวิตของตัวรับตรงกับ UI ที่ใช้งานอยู่

  6. 06

    ตรวจสอบค่าดิบ สตริง ความยาว และประเภทเพิ่มเติมแล้ว

  7. 07

    ทดสอบสัญลักษณ์ที่จำเป็นทั้งหมดแล้ว

  8. 08

    ทดสอบการสแกนที่ยาว เสียหาย และรวดเร็ว

  9. 09

    ทดสอบโหมดสลีป รีบูต และ MDM แล้ว

  10. 10

    ไม่มีการบันทึกข้อมูลบาร์โค้ดที่ละเอียดอ่อน

FAQ

คำถามที่พบบ่อย

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 เอกสารวงจรการใช้งานของแอปพลิเคชันและตัวรับการออกอากาศ

เปลี่ยนคู่มือนี้เป็นการตัดสินใจโครงการ

ขอการตรวจสอบแอปพลิเคชัน

แชร์โมเดล เฟิร์มแวร์ พื้นฐาน SDK และเวิร์กโฟลว์การสแกน RuggedLayer จะกำหนดขอบเขตแผนการตรวจสอบอุปกรณ์ที่ทำซ้ำได้

ขอการตรวจสอบแอปพลิเคชัน