Pemindai kode Google (Beta)

API pemindai kode Google memberikan solusi lengkap untuk memindai kode tanpa mengharuskan aplikasi 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. Semua pemrosesan gambar terjadi di perangkat dan Google tidak menyimpan hasil atau data gambar. API mendukung format kode yang sama seperti ML Kit Barcode Scanning API dan menampilkan objek Barcode yang sama.

API ini ideal untuk aplikasi yang hanya perlu memindai kode dan tidak memerlukan pengalaman kamera atau UI kustom. Implementasi ini sepenuhnya berada dalam layanan Google Play, sehingga tidak ada dampak signifikan terhadap ukuran aplikasi Anda. Untuk kasus penggunaan yang lebih kompleks yang memerlukan UI kustom, gunakan ML Kit Barcode Scanning API secara langsung.

Jika Anda memiliki pertanyaan, ingin mengirimkan bug atau memerlukan bantuan, lihat 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 repositori pusat Maven di blok dependencyResolutionManagement:

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

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

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

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

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

Memindai kode

1. (Opsional) Mengonfigurasi pemindai kode

Jika Anda mengetahui format kode batang yang ingin dibaca, Anda dapat meningkatkan kecepatan detektor kode batang dengan mengonfigurasinya untuk mendeteksi format tersebut. Misalnya, untuk mendeteksi kode Aztec dan kode QR saja, 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();

2. Mendapatkan instance 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);

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. Menangani Barcode yang dihasilkan

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();