API pemindai kode Google memberikan solusi lengkap untuk memindai kode
tanpa mengharuskan aplikasi Anda untuk meminta izin kamera, sekaligus mempertahankan
privasi. Hal ini dilakukan dengan mendelegasikan tugas
pemindaian kode ke
Layanan Google Play dan hanya menampilkan hasil pemindaian ke aplikasi Anda (Video 1).
Semua pemrosesan gambar dilakukan di perangkat dan Google tidak menyimpan hasilnya
atau gambar. API ini mendukung format kode yang sama dengan
ML Kit Barcode Scanning API dan menampilkan
Barcode
yang sama
.
API ini ideal untuk aplikasi yang memerlukan pemindaian kode yang lancar tanpa perlu untuk pengalaman kamera atau UI kustom. Implementasi ini berada sepenuhnya di dalam Layanan Google Play, yang memastikan dampak minimal pada ukuran aplikasi Anda.
Mulai versi 16.1.0, Anda dapat mengaktifkan zoom otomatis untuk mengizinkan kode Google pemindai untuk memindai kode batang yang jauh dari kamera secara otomatis. Kapan pengguna mengarahkan perangkat mereka ke kode batang, pemindai akan mendeteksi secara cerdas dan memperbesar kode batang. Dengan begitu, zoom manual tidak diperlukan penyesuaian kode batang, menjadikan pemindaian kode batang lebih cepat, akurat, dan mudah diakses (lihat Video 2).
Video 1. Integrasi pemindai kode Google | Video 2. Efek zoom otomatis |
Untuk kasus penggunaan lebih kompleks yang memerlukan UI kustom, sebaiknya gunakan ML Kit Barcode Scanning API secara langsung.
Jika ada pertanyaan, ingin melaporkan bug, atau memerlukan bantuan, periksa Halaman komunitas ML Kit.
Sebelum memulai
Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.
Mengonfigurasi aplikasi Anda
Di file
settings.gradle
tingkat teratas, sertakan Repositori Maven Google dan Repositori pusat Maven di bawah BlokdependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Menambahkan dependensi layanan Google Play untuk
play-services-code-scanner
SDK ke file build Gradle modul Anda, yang biasanya adalahapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Anda dapat mengonfigurasi aplikasi agar memiliki layanan Google Play secara otomatis download modul pemindai ke perangkat saat aplikasi Anda diinstal dari Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Anda juga dapat memeriksa ketersediaan dan permintaan modul pemindai secara eksplisit unduh melalui layanan Google Play ModuleInstallClient Google Cloud Platform.
Jika Anda tidak mengaktifkan download modul waktu penginstalan atau meminta permintaan eksplisit download—dan modul pemindai belum diinstal di aplikasi lain yang berbeda—Layanan Google Play mendownload modul pemindai terlebih dahulu waktu penggunaannya.
Pindai kode
Terapkan langkah-langkah berikut untuk memindai kode batang.
Opsional: Konfigurasi pemindai kode.
Jika mengetahui format kode batang yang ingin dibaca, Anda dapat memperbaiki kecepatan detektor kode batang dengan mengonfigurasinya untuk mendeteksi format font. Misalnya, untuk mendeteksi kode Aztec dan kode QR saja, buat
GmsBarcodeScannerOptions
seperti dalam contoh berikut: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();
Secara default, zoom otomatis dinonaktifkan. Untuk mengaktifkan fungsi zoom otomatis mulai versi 16.1.0, panggil
enableAutoZoom()
seperti yang ditampilkan dalam contoh kode berikut.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();
Dapatkan instance
GmsBarcodeScanner
, seperti yang ditunjukkan dalam contoh kode: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);
Minta pemindaian kode dengan memanggil
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 });
Tangani
Barcode
yang dihasilkan.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();