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

Google kod tarayıcı API'si, uygulamanızın kamera izni istemesine gerek kalmadan kod tarama için eksiksiz bir çözüm sunarken kullanıcı gizliliğini de korur. Bu, kodu tarama görevini Google Play Hizmetleri'ne devrederek ve yalnızca tarama sonuçlarını uygulamanıza döndürerek gerçekleştirilir (Video 1). Tüm görüntü işleme işlemleri cihazda gerçekleşir ve Google, sonuçları veya görüntü 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 bir kullanıcı arayüzü veya kamera deneyimi gerektirmeden sorunsuz kod tarama işlemi yapması gereken uygulamalar için idealdir. Uygulama tamamen Google Play Hizmetleri'nde yer aldığından uygulamanızın boyutu üzerinde minimum etki sağlar.

16.1.0 sürümünden itibaren, Google kod tarayıcının kameradan uzaktaki barkodları otomatik olarak taramasına olanak tanımak için otomatik yakınlaştırmayı etkinleştirebilirsiniz. Kullanıcılar cihazlarını bir barkoda doğrulttuğunda tarayıcı, barkodu akıllı bir şekilde algılar ve barkoda yakınlaştırır. Bu sayede, yakınlaştırma ayarlarını manuel olarak yapmanız gerekmez. Böylece barkod tarama işlemi daha hızlı, daha doğru ve daha erişilebilir hale gelir (Video 2'ye bakın).

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

Özel bir 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 bildirmek istiyorsanız veya yardıma ihtiyacınız varsa ML Kit topluluk sayfasını inceleyin.

Başlamadan önce

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

Uygulamanızı yapılandırma

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

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. play-services-code-scanner SDK'sı için 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 Store'dan yüklenirken Google Play Hizmetleri'nin tarayıcı modülünü cihaza otomatik olarak indireceği şekilde yapılandırabilirsiniz.

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

    Ayrıca, tarayıcı modülünün kullanılabilirliğini açıkça kontrol edebilir ve Google Play Hizmetleri ModuleInstallClient API aracılığıyla indirme isteğinde bulunabilirsiniz.

    Yükleme sırasında modül indirmelerini etkinleştirmez veya açıkça indirme isteğinde bulunmazsanız ve tarayıcı modülü başka bir kullanım alanı için henüz yüklenmemişse Google Play Hizmetleri, tarayıcı modülünü ilk kullanıldığında indirir.

Kod tarama

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

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

    Okunmasını beklediğiniz barkod biçimlerini biliyorsanız barkod algılayıcıyı yalnızca bu biçimleri algılayacak şekilde yapılandırarak algılayıcının hızını artırabilirsiniz. Örneğin, yalnızca Aztek kodunu ve QR kodlarını algılamak için aşağıdaki örnekte olduğu 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 devre dışı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() yöntemini ç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 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() yöntemini çağırarak kod tarama isteğinde bulunun.

    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. Sonuçta ortaya çıkan Barcode öğesini işleyin.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();