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

Google kod tarayıcı API'si, uygulamanızın kamera izni istemesini gerektirmeden kod tarama için eksiksiz bir çözüm sunarken 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 gerçekleştirilir (Video 1). Tüm görüntü işleme cihazda gerçekleşir ve Google sonuçları veya görüntü verilerini saklamaz. API, ML Kit Barkod Tarama 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 özelliği sunan uygulamalar için idealdir. Uygulama tamamen Google Play Hizmetleri'nde yer alır ve uygulamanızın boyutu en az düzeyde etkilenir.

16.1.0 sürümünden itibaren, Google kod tarayıcının kameradan uzakta olan 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. Bu sayede manuel yakınlaştırma ayarlamalarına gerek kalmaz ve barkod tarama işlemi daha hızlı, doğru ve erişilebilir hale gelir (2. videoya 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 ML Kit Barkod Tarama API'yi doğrudan kullanmanızı öneririz.

Sorularınız varsa, hata göndermek 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ümlerdeki adımları tamamlayın.

Uygulamanızı yapılandırma

  1. En üst düzeydeki 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ı, Play Store'dan yüklenirken Google Play Hizmetleri'nin tarayıcı modülünü cihaza otomatik olarak indirecek ş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 anında modül indirmelerini etkinleştirmezseniz veya açıkça 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 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.

    Hangi barkod biçimlerini okumayı beklediğinizi 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 Aztec kodu 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. Otomatik yakınlaştırma işlevini 16.1.0 sürümünden itibaren 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 GmsBarcodeScanner öğesinin bir ö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. Sonuçta ortaya çıkan Barcode işleyin.

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();