Pemindai kode Google (khusus Android)

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

  1. Di file settings.gradle tingkat teratas, sertakan Repositori Maven Google dan Repositori pusat Maven di bawah Blok dependencyResolutionManagement:

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

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. 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.

  1. 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();
  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();