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

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

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

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

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

हमारा सुझाव है कि कस्टम यूज़र इंटरफ़ेस (यूआई) की ज़रूरत वाले ज़्यादा जटिल इस्तेमाल के उदाहरणों के लिए, सीधे ML Kit Barcode Scanning API का इस्तेमाल करें.

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

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

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

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

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

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

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

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

    Google Play services ModuleInstallClient API के ज़रिए, स्कैनर मॉड्यूल की उपलब्धता की जांच की जा सकती है. साथ ही, इसे डाउनलोड करने का अनुरोध किया जा सकता है.

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

कोड स्कैन करना

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

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