Google कोड स्कैनर (सिर्फ़ Android पर)

Google कोड स्कैनर एपीआई, उपयोगकर्ता की निजता को सुरक्षित रखते हुए, कोड स्कैन करने का एक पूरा समाधान देता है. इसके लिए, आपके ऐप्लिकेशन को कैमरे की अनुमति का अनुरोध करने की ज़रूरत नहीं पड़ती. ऐसा करने के लिए, Google Play services को कोड स्कैन करना होता है और ऐप्लिकेशन को स्कैन करने के लिए सिर्फ़ नतीजे मिलते हैं (पहला वीडियो). इमेज प्रोसेसिंग सभी डिवाइस पर होती है और Google नतीजों या इमेज डेटा को सेव नहीं करता है. एपीआई जिस कोड फ़ॉर्मैट का इस्तेमाल करता है उसी तरीके का इस्तेमाल, एमएल किट बारकोड स्कैन करने वाले एपीआई के लिए भी किया जाता है. यह वही Barcode ऑब्जेक्ट रिटर्न करता है.

यह एपीआई उन ऐप्लिकेशन के लिए बढ़िया है जिन्हें बिना किसी यूज़र इंटरफ़ेस (यूआई) या कैमरा इस्तेमाल किए बिना, कोड को आसानी से स्कैन करना पड़ता है. लागू करने का काम पूरी तरह Google Play सेवाओं पर होता है, जिससे आपके ऐप्लिकेशन के आकार पर कम से कम असर पड़ता है.

16.1.0 से लेकर, अपने-आप ज़ूम होने की सुविधा को चालू किया जा सकता है. इससे, Google कोड स्कैन करने वाला टूल, कैमरे से बहुत दूर मौजूद बारकोड को अपने-आप स्कैन कर सकता है. जब उपयोगकर्ता अपने डिवाइसों को बारकोड पर ले जाते हैं, तो स्कैनर, बारकोड का बेहतर तरीके से पता लगाकर ज़ूम इन कर सकता है. इससे मैन्युअल ज़ूम अडजस्टमेंट की ज़रूरत नहीं होती. साथ ही, बारकोड स्कैन करने की सुविधा को ज़्यादा तेज़ और सटीक बनाने में मदद मिलती है. (दूसरा वीडियो देखें).

पहला वीडियो. Google कोड स्कैनर इंटिग्रेशन दूसरा वीडियो. अपने-आप ज़ूम होने की सुविधा का इफ़ेक्ट

कस्टम यूआई की ज़रूरत वाले ज़्यादा मुश्किल मामलों में, हम सीधे एमएल किट बारकोड स्कैन करने वाले एपीआई का इस्तेमाल करने का सुझाव देते हैं.

अगर आपका कोई सवाल है, तो बग सबमिट करें या सहायता पाने के लिए, ML Kit का कम्यूनिटी पेज देखें.

शुरू करने से पहले

अपने ऐप्लिकेशन को तैयार करने के लिए, नीचे दिए गए सेक्शन में बताया गया तरीका अपनाएं.

अपना ऐप्लिकेशन कॉन्फ़िगर करें

  1. अपनी टॉप-लेवल settings.gradle फ़ाइल में Google का Maven का डेटा स्टोर करने की जगह और Maven Central डेटा स्टोर करने की जगह शामिल करें:dependencyResolutionManagement के ब्लॉक में:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. अपने मॉड्यूल की Gradle बिल्ड फ़ाइल में play-services-code-scanner SDK टूल के लिए Google Play services की डिपेंडेंसी जोड़ें, जो आम तौर पर app/build.gradle होती है:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. अपने ऐप्लिकेशन को इस तरह कॉन्फ़िगर किया जा सकता है जिससे Google Play services, ऐप्लिकेशन को Play Store से इंस्टॉल किए जाने के दौरान स्कैनर में अपने-आप डाउनलोड करे.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    स्कैनर मॉड्यूल की उपलब्धता की साफ़ तौर पर जांच करें और Google Play सेवाएं मॉड्यूल इंस्टॉल क्लाइंट एपीआई के ज़रिए डाउनलोड करने का अनुरोध भी करें.

    अगर आप इंस्टॉल के समय मॉड्यूल डाउनलोड चालू नहीं करते हैं या अश्लील डाउनलोड का अनुरोध करते हैं और दूसरे मॉड्यूल का इस्तेमाल करने के लिए स्कैनर मॉड्यूल पहले से इंस्टॉल नहीं है, तो Google Play सेवाएं पहली बार इस्तेमाल किए जाने पर स्कैनर मॉड्यूल को डाउनलोड करती हैं.

कोड स्कैन करें

बारकोड को स्कैन करने के लिए, यहां दिया गया तरीका अपनाएं.

  1. यह ज़रूरी नहीं है: कोड स्कैनर कॉन्फ़िगर करें.

    अगर आपको पता है कि आपको कौनसे बारकोड फ़ॉर्मैट पढ़ने हैं, तो सिर्फ़ उन फ़ॉर्मैट का पता लगाने के लिए, बारकोड डिटेक्टर को कॉन्फ़िगर करें. इससे, उसकी स्पीड को बेहतर बनाया जा सकता है. उदाहरण के लिए, सिर्फ़ ऐज़टेक कोड और क्यूआर कोड का पता लगाने के लिए, GmsBarcodeScannerOptions ऑब्जेक्ट बनाएं, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:

    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();
    

    अपने-आप ज़ूम होने की सुविधा डिफ़ॉल्ट रूप से बंद रहती है. अपने-आप ज़ूम होने की सुविधा को 16.1.0 से शुरू करने के लिए, enableAutoZoom() को कॉल करें, जैसा कि इस कोड के उदाहरण में दिखाया गया है.

    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. कोड के उदाहरण में दिखाए गए तरीके से, GmsBarcodeScanner का इंस्टेंस पाएं:

    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() को कॉल करके, कोड स्कैन करने का अनुरोध करें.

    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. नतीजे के तौर पर मौजूद Barcode को हैंडल करें.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();