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

Google Code Scanner API, 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örevi Google Play Hizmetleri'ne devredilerek ve uygulamanıza yalnızca tarama sonuçlarını döndürerek (Video 1) gerçekleştirilir. Tüm görüntü işleme işlemleri cihazda gerçekleşir ve Google, sonuçları veya görsel 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. Uygulama tamamen Google Play Hizmetleri içinde gerçekleştirilir ve uygulamanızın boyutu üzerindeki etki minimum düzeydedir.

16.1.0 sürümünden itibaren, Google kod tarayıcının kameradan uzakta bulunan barkodları otomatik olarak taramasına izin vermek için otomatik yakınlaştırmayı etkinleştirebilirsiniz. Kullanıcılar cihazlarını bir barkoda doğrulttuklarında, tarayıcı barkodu akıllı bir şekilde algılayıp yakınlaştırır. Bu, manuel yakınlaştırma ayarlamasına duyulan ihtiyacı ortadan kaldırarak barkod taramasını daha hızlı, daha doğru ve daha erişilebilir hale getirir (2. Videoya bakın).

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

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

Sorularınız varsa, hata bildirmek isterseniz veya yardıma ihtiyacınız olursa ML Kit topluluk sayfasını ziyaret edebilirsiniz.

Başlamadan önce

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

Uygulamanızı yapılandırma

  1. Üst düzey settings.gradle dosyanıza dependencyResolutionManagement blokunun altına Google Maven deposu ve Maven merkezi deposu 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:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. 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 üzerinden indirme isteğinde bulunabilirsiniz.

    Yükleme zamanı modülü indirmelerini etkinleştirmezseniz veya açık şekilde indirme 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 sadece bu biçimleri algılayacak şekilde yapılandırarak barkod dedektörü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 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() 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 işlemini yönetin.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();