Google kod tarayıcı (yalnızca Android)

Google kod tarayıcısı API'si, uygulamanızın kamera izni istemesine gerek kalmadan kod taramak için eksiksiz bir çözüm sunar ve kullanıcı gizliliğini korur. Bu, kodu tarama görevini Google Play Hizmetleri'ne devrederek ve yalnızca tarama sonuçlarını uygulamanıza döndürerek (Video 1) gerçekleştirilir. Tüm resim işlemleri cihazda gerçekleşir ve Google sonuçları veya resim verilerini saklamaz. API, ML Kit Barcode Scanning API ile aynı kod biçimlerini destekler ve aynı Barcode nesnesini döndürür.

Bu API, özel kullanıcı arayüzü veya kamera deneyimi gerektirmeden sorunsuz kod taraması yapılması gereken uygulamalar için idealdir. Uygulama tamamen Google Play Hizmetleri'nde yer alır. Bu sayede uygulamanızın boyutu en az düzeyde etkilenir.

16.1.0 sürümünden itibaren, Google kod tarayıcısının kameradan uzaktaki barkodları otomatik olarak taramasına izin vermek için otomatik yakınlaştırmayı etkinleştirebilirsiniz. Kullanıcılar cihazlarını bir barkoda doğrulttuğunda tarayıcı, barkodu akıllıca algılar ve yakınlaştırır. Bu sayede manuel yakınlaştırma ayarlarının yapılmasına gerek kalmaz. Böylece barkod taraması daha hızlı, daha doğru ve daha erişilebilir hale gelir (2. videoya bakın).

1. video. Google kod tarayıcı entegrasyonu 2. video. Otomatik yakınlaştırma efekti

Özel kullanıcı arayüzü gerektiren daha karmaşık kullanım alanları için doğrudan ML Kit Barcode Scanning API'yi kullanmanızı öneririz.

Sorularınız varsa, hata göndermek istiyorsanız veya yardıma ihtiyacınız varsa ML Kit topluluğu sayfasını inceleyin.

Başlamadan önce

Uygulamanızı hazırlamak için aşağıdaki bölümlerdeki adımları tamamlayın.

Uygulamanızı yapılandırma

  1. Üst düzey settings.gradle dosyanızda, Google'ın Maven deposunu ve Maven merkezi deposunu dependencyResolutionManagement bloğunun altına ekleyin:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. play-services-code-scannerSDK'sına ait Google Play Hizmetleri bağımlılığını, modülünüzün Gradle derleme dosyasına (genellikle app/build.gradle) ekleyin:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Uygulamanızı, Google Play Hizmetleri'nin uygulamanız Play Store'dan yüklenirken tarayıcı modülünü cihaza otomatik olarak indirmesi için yapılandırabilirsiniz.

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

    Tarayıcı modülünün kullanılabilirliğini açıkça kontrol edebilir ve Google Play Hizmetleri ModuleInstallClient API üzerinden indirme isteğinde bulunabilirsiniz.

    Yükleme sırasında modül indirmelerini etkinleştirmezseniz veya açık indirme isteğinde bulunmazsanız (ve tarayıcı modülü başka bir kullanım alanı için yüklü değilse) Google Play Hizmetleri, tarayıcı modülünü ilk kez kullanıldığında indirir.

Kod tara

Barkod taramak için aşağıdaki adımları uygulayın.

  1. İsteğe bağlı: Kod tarayıcıyı yapılandırın.

    Hangi barkod biçimlerini okumayı beklediğinizi biliyorsanız yalnızca bu biçimleri algılayacak şekilde yapılandırarak barkod algılayıcının hızını artırabilirsiniz. Örneğin, yalnızca Aztec kodu ve QR kodlarını algılamak için aşağıdaki örnekte gösterildiği gibi bir GmsBarcodeScannerOptions nesnesi oluşturun:

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

    Otomatik yakınlaştırma varsayılan olarak kapalıdır. 16.1.0 sürümünden itibaren otomatik yakınlaştırma işlevini etkinleştirmek için aşağıdaki kod örneğinde gösterildiği gibi enableAutoZoom() işlevini çağırın.

    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. Kod örneğinde gösterildiği gibi bir GmsBarcodeScanner örneği alın:

    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. startScan() numaralı telefonu arayarak kod taraması isteyin.

    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. Elde edilen Barcode dosyasını işleyin.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();