API เครื่องมือสแกนโค้ดของ Google เป็นโซลูชันที่สมบูรณ์สําหรับการสแกนโค้ดโดยไม่จําเป็นต้องอนุญาตให้แอปขอสิทธิ์ของกล้อง โดยยังรักษาความเป็นส่วนตัวของผู้ใช้ไว้ด้วย ซึ่งทําได้โดยการมอบสิทธิ์การสแกนโค้ดไปยังบริการ Google Play และแสดงผลการสแกนเฉพาะในแอป การประมวลผลรูปภาพทั้งหมดจะเกิดขึ้นในอุปกรณ์และ Google จะไม่จัดเก็บผลการค้นหาหรือข้อมูลรูปภาพ API รองรับรูปแบบโค้ดเดียวกันกับ API การสแกนบาร์โค้ด ML Kit และแสดงผลออบเจ็กต์ บาร์โค้ด เดียวกัน
API นี้เหมาะสําหรับแอปที่ต้องใช้เพียงสแกนโค้ดและไม่จําเป็นต้องมี UI ที่กําหนดเองหรือประสบการณ์การใช้งานกล้อง การติดตั้งใช้งานจะอยู่ในบริการ Google Play ทั้งหมด จึงไม่มีผลกระทบต่อขนาดของแอปมากนัก สําหรับกรณีการใช้งานที่ซับซ้อนที่ต้องใช้ UI ที่กําหนดเอง ให้ใช้ ML Kit Barcode Scanning API โดยตรง
หากมีข้อสงสัยต้องการส่งข้อบกพร่องหรือต้องการความช่วยเหลือ โปรดไปที่หน้าชุมชน ML Kit
ข้อควรทราบก่อนเริ่มต้น
ทําตามขั้นตอนต่อไปนี้เพื่อเตรียมแอป
กําหนดค่าแอป
ในไฟล์
settings.gradle
ระดับบนสุด ให้ใส่ที่เก็บ Maven ของ Google และที่เก็บส่วนกลางของ Maven ในส่วนบล็อกdependencyResolutionManagement
ให้ทําดังนี้dependencyResolutionManagement { repositories { google() mavenCentral() } }
เพิ่มทรัพยากร 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' }
คุณกําหนดค่าแอปเพื่อให้บริการ 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();