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.gradledependencies { 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();

