Google kod tarayıcısı API'si, 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örevini Google Play Hizmetleri'ne devrederek ve yalnızca tarama sonuçlarını uygulamanıza döndürerek (Video 1) gerçekleştirilir.
Tüm resim işlemleri cihazda gerçekleşir ve Google sonuçları veya resim 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 kullanıcı arayüzü veya kamera deneyimi gerektirmeden sorunsuz kod taraması yapılması gereken uygulamalar için idealdir. Uygulama tamamen Google Play Hizmetleri'nde yer alır. Bu sayede uygulamanızın boyutu en az düzeyde etkilenir.
16.1.0 sürümünden itibaren, Google kod tarayıcısı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 doğrulttuğunda tarayıcı, barkodu akıllıca algılar ve yakınlaştırır. Bu sayede manuel yakınlaştırma ayarlarının yapılmasına gerek kalmaz. Böylece barkod taraması daha hızlı, daha doğru ve daha erişilebilir hale gelir (2. videoya bakın).
1. video. Google kod tarayıcı entegrasyonu | 2. video. 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 topluluğu 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
Üst düzey
settings.gradle
dosyanızda, Google'ın Maven deposunu ve Maven merkezi deposunudependencyResolutionManagement
bloğunun altına ekleyin:dependencyResolutionManagement { repositories { google() mavenCentral() } }
play-services-code-scanner
SDK'sına ait Google Play Hizmetleri bağımlılığını, modülünüzün Gradle derleme dosyasına (genellikleapp/build.gradle
) ekleyin:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Uygulamanızı, Google Play Hizmetleri'nin uygulamanız Play Store'dan yüklenirken tarayıcı modülünü cihaza otomatik olarak indirmesi için yapılandırabilirsiniz.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
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 sırasında modül indirmelerini etkinleştirmezseniz veya açık indirme isteğinde bulunmazsanız (ve tarayıcı modülü başka bir kullanım alanı için yüklü değilse) 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.
İsteğe bağlı: Kod tarayıcıyı yapılandırın.
Hangi barkod biçimlerini okumayı beklediğinizi biliyorsanız yalnızca bu biçimleri algılayacak şekilde yapılandırarak barkod algılayıcının hızını artırabilirsiniz. Örneğin, yalnızca Aztec kodu 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()
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();
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);
startScan()
numaralı telefonu arayarak kod taraması isteyin.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 });
Elde edilen
Barcode
dosyasını işleyin.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();