Pemindai kode Google (khusus Android)

API pemindai kode Google memberikan solusi lengkap untuk memindai kode tanpa mengharuskan aplikasi Anda meminta izin kamera, sekaligus menjaga privasi pengguna. Hal ini dilakukan dengan mendelegasikan tugas memindai kode ke layanan Google Play dan hanya menampilkan hasil pemindaian ke aplikasi Anda (Video 1). Semua pemrosesan gambar terjadi di perangkat, dan Google tidak menyimpan hasil atau data gambar. API ini mendukung format kode yang sama seperti ML Kit Barcode Scanning API dan menampilkan objek Barcode yang sama.

API ini ideal untuk aplikasi yang memerlukan pemindaian kode yang lancar tanpa memerlukan pengalaman UI atau kamera kustom. Implementasi ini sepenuhnya berada di dalam layanan Google Play, sehingga meminimalkan dampak terhadap ukuran aplikasi Anda.

Mulai versi 16.1.0, Anda dapat mengaktifkan zoom otomatis untuk mengizinkan pemindai kode Google memindai kode batang yang jauh dari kamera secara otomatis. Saat pengguna mengarahkan perangkat ke kode batang, pemindai akan secara cerdas mendeteksi dan memperbesar kode batang. Dengan cara ini, Anda tidak perlu melakukan penyesuaian zoom manual, sehingga pemindaian kode batang menjadi lebih cepat, lebih akurat, dan lebih mudah diakses (lihat Video 2).

Video 1. Integrasi pemindai kode Google Video 2. Efek zoom otomatis

Untuk kasus penggunaan yang lebih kompleks yang memerlukan UI kustom, sebaiknya gunakan ML Kit Barcode Scanning API secara langsung.

Jika ada pertanyaan, ingin mengirimkan bug, atau memerlukan bantuan, kunjungi halaman komunitas ML Kit.

Sebelum memulai

Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.

Mengonfigurasi aplikasi Anda

  1. Di file settings.gradle tingkat atas, sertakan repositori Maven Google dan Maven Central Repository di bagian blok dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Tambahkan dependensi layanan Google Play untuk play-services-code-scanner SDK ke file build Gradle modul, yang biasanya app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Anda dapat mengonfigurasi aplikasi agar layanan Google Play otomatis mendownload modul pemindai ke perangkat saat aplikasi diinstal dari Play Store secara otomatis.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    Anda juga dapat secara eksplisit memeriksa ketersediaan modul pemindai dan meminta download melalui ModuleInstallClient API layanan Google Play.

    Jika Anda tidak mengaktifkan download modul saat penginstalan atau meminta download eksplisit—dan modul pemindai belum diinstal untuk kasus penggunaan lain—layanan Google Play akan mendownload modul pemindai saat pertama kali digunakan.

Memindai kode

Terapkan langkah-langkah berikut untuk memindai kode batang.

  1. Opsional: Mengonfigurasi pemindai kode.

    Jika mengetahui format kode batang yang ingin dibaca, Anda dapat meningkatkan kecepatan detektor kode batang dengan mengonfigurasinya hanya untuk mendeteksi format tersebut. Misalnya untuk hanya mendeteksi kode Aztec dan QR, buat objek GmsBarcodeScannerOptions seperti pada 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 yang dimulai pada versi 16.1.0, panggil enableAutoZoom() seperti yang ditunjukkan 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();
    
  2. 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);
    
  3. 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
           });
    
  4. Tangani Barcode yang dihasilkan.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();