เครื่องมือสแกนโค้ดของ Google (Android เท่านั้น)

API เครื่องมือสแกนโค้ดของ Google มอบโซลูชันที่ครบวงจรสำหรับการสแกนโค้ด โดยไม่ต้องให้แอปขอสิทธิ์ใช้กล้อง แต่คงผู้ใช้ไว้ ความเป็นส่วนตัว ซึ่งทำได้โดยมอบสิทธิ์งานการสแกนโค้ดให้กับ บริการ Google Play และการส่งคืนเฉพาะผลการสแกนไปยังแอปของคุณ (วิดีโอ 1) การประมวลผลรูปภาพทั้งหมดจะเกิดขึ้นในอุปกรณ์และ Google ไม่ได้จัดเก็บผลลัพธ์ หรือข้อมูลภาพ API สนับสนุนรูปแบบโค้ดเดียวกันกับ ML Kit BarcodeScanning API และแสดงผล Barcode เดียวกัน ออบเจ็กต์

API นี้เหมาะสำหรับแอปที่ต้องมีการสแกนโค้ดอย่างราบรื่น สำหรับ UI แบบกำหนดเอง หรือประสบการณ์การใช้กล้องได้ การดำเนินการทั้งหมดอยู่ใน บริการ Google Play เพื่อให้มั่นใจได้ว่าขนาดของแอปจะส่งผลกระทบน้อยที่สุด

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

วิดีโอ 1 การผสานรวมเครื่องมือสแกนโค้ดของ Google วิดีโอ 2 เอฟเฟกต์ซูมอัตโนมัติ

สำหรับกรณีการใช้งานที่ซับซ้อนมากขึ้นที่ต้องใช้ UI ที่กำหนดเอง เราขอแนะนำให้ใช้ ML Kit Barcode Scanning API ได้โดยตรง

หากมีข้อสงสัย ต้องการส่งข้อบกพร่อง หรือต้องการความช่วยเหลือ โปรดไปที่ หน้าชุมชน ML Kit

ก่อนเริ่มต้น

ทําตามขั้นตอนในส่วนต่อไปนี้เพื่อเตรียมแอป

กำหนดค่าแอป

  1. ในไฟล์ settings.gradle ระดับบนสุด ให้ใส่ ที่เก็บ Maven ของ Google และ ที่เก็บส่วนกลางของ Maven ใน บล็อก dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. เพิ่มทรัพยากร Dependency ของบริการ Google Play สำหรับ play-services-code-scanner SDK ไปยังไฟล์ Gradle ของโมดูลของคุณ ซึ่งโดยทั่วไปคือ app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. คุณกำหนดค่าให้แอปใช้บริการ Google Play โดยอัตโนมัติได้ ดาวน์โหลดโมดูลสแกนเนอร์ลงในอุปกรณ์ขณะติดตั้งแอปของคุณจาก Play Store

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    คุณยังตรวจสอบความพร้อมใช้งานของโมดูลเครื่องสแกนและส่งคำขออย่างชัดแจ้งได้ด้วย ดาวน์โหลดผ่านบริการ Google Play ModuleInstallClient API

    หากคุณไม่เปิดใช้การดาวน์โหลดโมดูลเวลาติดตั้งหรือส่งคำขออย่างชัดแจ้ง ดาวน์โหลดและโมดูลเครื่องสแกนไม่ได้ติดตั้งไว้สำหรับ Use Case - บริการ Google Play จะดาวน์โหลดโมดูลเครื่องสแกน เวลาที่ใช้งาน

สแกนรหัส

ทำตามขั้นตอนต่อไปนี้เพื่อสแกนบาร์โค้ด

  1. ไม่บังคับ: กำหนดค่าเครื่องมือสแกนโค้ด

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

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build()

    Java

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build();

    การซูมอัตโนมัติจะปิดอยู่โดยค่าเริ่มต้น วิธีเปิดใช้ฟังก์ชันการซูมอัตโนมัติ เริ่มต้นในเวอร์ชัน 16.1.0 ให้เรียกใช้ enableAutoZoom() ตามที่แสดงใน ตัวอย่างโค้ดต่อไปนี้

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build()

    Java

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build();
  2. รับอินสแตนซ์ของ GmsBarcodeScanner ดังที่แสดงในตัวอย่างโค้ด

    Kotlin

    val scanner = GmsBarcodeScanning.getClient(this)
    // Or with a configured options
    // val scanner = GmsBarcodeScanning.getClient(this, options)

    Java

    GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
    // Or with a configured options
    // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
  3. ขอการสแกนรหัสโดยโทรไปที่ startScan()

    Kotlin

    scanner.startScan()
       .addOnSuccessListener { barcode ->
           // Task completed successfully
       }
       .addOnCanceledListener {
           // Task canceled
       }
       .addOnFailureListener { e ->
           // Task failed with an exception
       }

    Java

    scanner
       .startScan()
       .addOnSuccessListener(
           barcode -> {
             // Task completed successfully
           })
       .addOnCanceledListener(
           () -> {
             // Task canceled
           })
       .addOnFailureListener(
           e -> {
             // Task failed with an exception
           });
  4. จัดการ Barcode ผลลัพธ์

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();