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 Central रिपॉज़िटरी शामिल करें:

    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. आपके पास अपने ऐप्लिकेशन को इस तरह कॉन्फ़िगर करने का विकल्प होता है कि Google Play services, Play Store से ऐप्लिकेशन इंस्टॉल होने के दौरान डिवाइस पर स्कैनर मॉड्यूल अपने-आप डाउनलोड कर ले.

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