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
ก่อนเริ่มต้น
หากต้องการเตรียมแอป ให้ทำตามขั้นตอนในส่วนต่อไปนี้
กำหนดค่าแอป
- ในไฟล์ - settings.gradleระดับบนสุด ให้ใส่ ที่เก็บ Maven ของ Google และ ที่เก็บ Maven Central ไว้ในบล็อก- dependencyResolutionManagementดังนี้- dependencyResolutionManagement { repositories { google() mavenCentral() } }
- เพิ่มทรัพยากร Dependency ของบริการ Google Play สำหรับ - play-services-code-scannerSDK ลงในไฟล์บิลด์ Gradle ของโมดูล ซึ่งโดยทั่วไปคือ- app/build.gradle- dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
- คุณสามารถกำหนดค่าแอปให้บริการ 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 จะดาวน์โหลดโมดูลสแกนเนอร์ในครั้งแรกที่มีการใช้งาน 
สแกนรหัส
ทำตามขั้นตอนต่อไปนี้เพื่อสแกนบาร์โค้ด
- ไม่บังคับ: กำหนดค่าเครื่องสแกนโค้ด - หากทราบรูปแบบบาร์โค้ดที่ต้องการอ่าน คุณจะปรับปรุงความเร็วของเครื่องตรวจจับบาร์โค้ดได้โดยกำหนดค่าให้ตรวจจับเฉพาะรูปแบบเหล่านั้น เช่น หากต้องการตรวจหาเฉพาะรหัส 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(); 
- รับอินสแตนซ์ของ - 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); 
- ขอให้สแกนรหัสโดยโทรไปที่ - 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 }); 
- จัดการ - Barcodeที่ได้- Kotlin- val rawValue: String? = barcode.rawValue - Java- String rawValue = barcode.getRawValue(); 
