เครื่องมือสแกนโค้ดของ 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 ดังตัวอย่างต่อไปนี้

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

2. รับอินสแตนซ์ของ GmsBarcodeScanner

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

3. ขอสแกนโค้ดโดยเรียกใช้ startScan()

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

4. จัดการบาร์โค้ดที่ได้

KotlinJava
val rawValue: String? = barcode.rawValue
String rawValue = barcode.getRawValue();