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

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

API นี้เหมาะสําหรับแอปที่ต้องใช้เพียงสแกนโค้ดและไม่จําเป็นต้องมี UI ที่กําหนดเองหรือประสบการณ์การใช้งานกล้อง การติดตั้งใช้งานจะอยู่ในบริการ Google Play ทั้งหมด จึงไม่มีผลกระทบต่อขนาดของแอปมากนัก สําหรับกรณีการใช้งานที่ซับซ้อนที่ต้องใช้ 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.0.0-beta3'
    }
    
  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();

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. จัดการบาร์โค้ดที่ได้

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();