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

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

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

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

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

สำหรับ Use Case ที่ซับซ้อนมากขึ้นซึ่งต้องใช้ 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>
    

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

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