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

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

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

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

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

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

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

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

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

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

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

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

    अगर आपको पता है कि आपको किस बारकोड फ़ॉर्मैट को स्कैन करना है, तो बारकोड डिटेक्टर की स्पीड को बेहतर बनाया जा सकता है. इसके लिए, उसे सिर्फ़ उन फ़ॉर्मैट को स्कैन करने के लिए कॉन्फ़िगर करें. उदाहरण के लिए, सिर्फ़ Aztec कोड और क्यूआर कोड का पता लगाने के लिए, 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();