เครื่องมือสแกนโค้ดของ 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 สำหรับ SDK play-services-code-scanner ลงในไฟล์บิลด์ 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>
    

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

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

สแกนรหัส

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

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

    หากทราบว่าจะอ่านบาร์โค้ดรูปแบบใด คุณสามารถเพิ่มความเร็วของเครื่องมือตรวจสอบบาร์โค้ดได้โดยกำหนดค่าให้ตรวจหารูปแบบเหล่านั้นเท่านั้น เช่น หากต้องการตรวจหาเฉพาะโค้ด Aztec และคิวอาร์โค้ด ให้สร้างออบเจ็กต์ 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();