
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 ดังตัวอย่างต่อไปนี้
val options = GmsBarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_QR_CODE,
Barcode.FORMAT_AZTEC)
.build()
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_QR_CODE,
Barcode.FORMAT_AZTEC)
.build();
2. รับอินสแตนซ์ของ GmsBarcodeScanner
val scanner = GmsBarcodeScanning.getClient(this)
// Or with a configured options
// val scanner = GmsBarcodeScanning.getClient(this, options)
GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
// Or with a configured options
// GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
3. ขอสแกนโค้ดโดยเรียกใช้ startScan()
scanner.startScan()
.addOnSuccessListener { barcode ->
// Task completed successfully
}
.addOnCanceledListener {
// Task canceled
}
.addOnFailureListener { e ->
// Task failed with an exception
}
scanner
.startScan()
.addOnSuccessListener(
barcode -> {
// Task completed successfully
})
.addOnCanceledListener(
() -> {
// Task canceled
})
.addOnFailureListener(
e -> {
// Task failed with an exception
});