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 เอฟเฟกต์ซูมอัตโนมัติ |
สำหรับกรณีการใช้งานที่ซับซ้อนมากขึ้นซึ่งต้องใช้ UI ที่กำหนดเอง เราขอแนะนำให้ใช้ ML Kit Barcode Scanning API โดยตรง
หากมีคำถาม ต้องการส่งข้อบกพร่อง หรือต้องการความช่วยเหลือ โปรดไปที่หน้าชุมชน ML Kit
ก่อนเริ่มต้น
หากต้องการเตรียมแอป ให้ทำตามขั้นตอนในส่วนต่อไปนี้
กำหนดค่าแอป
ในไฟล์
settings.gradleระดับบนสุด ให้ใส่ที่เก็บ Maven ของ Google และที่เก็บส่วนกลางของ Maven ไว้ในบล็อก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 ได้อย่างชัดเจน
หากคุณไม่ได้เปิดใช้การดาวน์โหลดโมดูลขณะติดตั้งหรือขอการดาวน์โหลดอย่างชัดแจ้ง และยังไม่ได้ติดตั้งโมดูลเครื่องสแกนสำหรับ Use Case อื่น บริการ 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();

