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

Google kod tarayıcı API, uygulamanızın kamera izni istemesine gerek kalmadan kullanıcı gizliliğini ihlal etmeden kod tarama için eksiksiz bir çözüm sunar. Bu işlem, kod tarama görevinin Google Play Hizmetleri'ne devredilmesi ve yalnızca tarama sonuçlarını uygulamanıza geri döndürülmesiyle gerçekleştirilir (Video 1). Tüm resim işleme işlemleri cihazda gerçekleşir ve Google, sonuçları veya görüntü verilerini depolamaz. 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 gerekmeden sorunsuz kod taraması gerektiren uygulamalar için idealdir. Tamamen Google Play Hizmetleri'ne dayanan bu uygulama, uygulamanızın boyutu üzerindeki etkisini asgari düzeyde tutar.

16.1.0 sürümünden itibaren, Google kod tarayıcısının kameradan uzakta olan barkodları otomatik olarak taramasını sağlamak için otomatik yakınlaştırma özelliğini etkinleştirebilirsiniz. Kullanıcılar cihazlarını bir barkoda doğrulttuklarında, tarayıcı barkodu akıllı bir şekilde algılar ve yakınlaştırır. Bu, manuel yakınlaştırma ayarlaması ihtiyacını ortadan kaldırarak barkod taramanın daha hızlı, daha doğru ve daha erişilebilir hale gelmesini sağlar (bkz. Video 2).

1. video Google kod tarayıcı entegrasyonu 2. video 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 göndermek isterseniz veya yardıma ihtiyacınız olursa ML Kit topluluk sayfasına göz atabilirsiniz.

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ıza Google'ın Maven deposunu ve Maven merkezi deposunu dependencyResolutionManagement bloğunun altına 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 ekleyin. Bu dosya genellikle app/build.gradle olur:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Uygulamanızı, uygulamanız Play Store'dan yüklenirken Google Play Hizmetleri'nin tarayıcı modülünü otomatik olarak cihaza indirmesini sağlayacak ş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 ModuleLoadClient API'si üzerinden indirme isteğinde bulunabilirsiniz.

    Yükleme zamanı modül indirmelerini etkinleştirmezseniz veya açık indirmeler isteğinde bulunmazsanız ve tarayıcı modülü başka bir kullanım alanı için önceden yüklenmemişse 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 barkod dedektörünü yalnızca bu biçimleri algılayacak şekilde yapılandırarak hızını artırabilirsiniz. Örneğin, yalnızca Aztek kodunu 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. Sürüm 16.1.0'dan 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 bir kod taraması 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 işlemini işleyin.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();