Google Code Scanner API มีโซลูชันที่สมบูรณ์แบบสำหรับการสแกนโค้ดโดยไม่ต้องให้แอปขอสิทธิ์เข้าถึงกล้อง ขณะเดียวกันก็ยังคงรักษาความเป็นส่วนตัวของผู้ใช้ไว้ ซึ่งทำได้โดยมอบหมายงานการสแกนโค้ดให้แก่บริการ Google Play และส่งคืนเฉพาะผลการสแกนไปยังแอปของคุณ (วิดีโอที่ 1)
การประมวลผลรูปภาพทั้งหมดจะเกิดขึ้นในอุปกรณ์ และ Google จะไม่จัดเก็บผลลัพธ์หรือข้อมูลรูปภาพ API นี้รองรับรูปแบบโค้ดเดียวกับ
ML Kit Barcode Scanning API และแสดงผล
ออบเจ็กต์ Barcode
เดียวกัน
API นี้เหมาะอย่างยิ่งสำหรับแอปที่ต้องมีการสแกนโค้ดอย่างราบรื่นโดยไม่จำเป็นต้องมี UI หรือประสบการณ์การใช้กล้องที่กำหนดเอง การใช้งานทั้งหมดจะอยู่ในบริการ Google Play ซึ่งช่วยให้มั่นใจได้ว่าจะมีผลกระทบต่อขนาดของแอปน้อยที่สุด
ตั้งแต่เวอร์ชัน 16.1.0 เป็นต้นไป คุณสามารถเปิดใช้การซูมอัตโนมัติเพื่อให้ Google Code Scanner สแกนบาร์โค้ดที่อยู่ไกลจากกล้องได้โดยอัตโนมัติ เมื่อผู้ใช้เล็งอุปกรณ์ไปที่บาร์โค้ด เครื่องสแกนจะตรวจหาและซูมบาร์โค้ดอย่างชาญฉลาด ซึ่งช่วยลดความจำเป็นในการปรับการซูมด้วยตนเอง ทำให้การสแกนบาร์โค้ดรวดเร็ว แม่นยำ และเข้าถึงได้มากขึ้น (ดูวิดีโอที่ 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>นอกจากนี้ คุณยังตรวจสอบความพร้อมใช้งานของโมดูลสแกนเนอร์และขอให้ดาวน์โหลดผ่านบริการ Google Play ModuleInstallClient API ได้ด้วย
หากคุณไม่ได้เปิดใช้การดาวน์โหลดโมดูลในเวลาติดตั้งหรือขอให้ดาวน์โหลดอย่างชัดแจ้ง และไม่ได้ติดตั้งโมดูลสแกนเนอร์ไว้สำหรับ 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();

