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

Google codebrowser API, uygulamanızın kamera izni istemesine gerek kalmadan kod taraması için eksiksiz bir çözüm sağlarken kullanıcı gizliliğini de korur. Bu işlem, kodun Google Play Hizmetleri'ne taranması ve yalnızca tarama sonuçlarının uygulamanıza (Video 1) döndürülmesiyle yetki verilmesiyle gerçekleştirilir. Tüm resim işleme, cihazda gerçekleşir ve Google sonuçları veya resim 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 tarama gerektiren uygulamalar için idealdir. Tamamen Google Play hizmetlerinin içinde yer alan bu yaklaşım, uygulamanızın boyutu üzerinde minimum etki sağlar.

16.1.0 sürümünden başlayarak, Google kod tarama aracı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 yönelttiğinde, tarayıcı barkodu akıllı bir şekilde algılayıp yakınlaştırır. Böylece manuel yakınlaştırma düzenleme ihtiyacını ortadan kaldırarak barkod taramayı daha hızlı, daha doğru ve daha erişilebilir hale getirebilirsiniz (bkz. Video 2).

Video 1. Google kod tarayıcı entegrasyonu Video 2. 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 topluluk sayfasını kontrol edin.

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. En üst düzey settings.gradle dosyanıza Google Maven deposu ve Maven merkezi deposu'nu 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 genellikle app/build.gradle olan Gradle derleme dosyasına ekleyin:

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

    Yükleme sırasında modül indirmelerini etkinleştirmez veya açık indirme isteğinde bulunmazsanız ve tarayıcı modülü başka bir kullanım alanında önceden yüklenmediyse 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.

    Okumayı beklediğiniz barkod biçimlerini biliyorsanız barkod algılayıcıyı, yalnızca bu biçimleri algılayacak şekilde yapılandırarak hızını artırabilirsiniz. Örneğin, yalnızca Aztek 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 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() 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ğini 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 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. Ortaya çıkan Barcode sorununu giderin.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();