![](https://developers-dot-devsite-v2-prod.appspot.com/static/ml-kit/images/code_scanner.gif?authuser=4&hl=hi)
Google कोड स्कैनर एपीआई, कोड स्कैन करने की पूरी प्रक्रिया उपलब्ध कराता है. इसके लिए, ऐप्लिकेशन को उपयोगकर्ता की निजता को बनाए रखते हुए कैमरे की अनुमति का अनुरोध करने की ज़रूरत नहीं होती है. ऐसा करने के लिए, Google Play सेवाओं पर कोड स्कैन करने का काम सौंपा जाता है और अपने ऐप्लिकेशन को सिर्फ़ स्कैन के नतीजे दिखाए जाते हैं. इमेज को पूरी तरह से प्रोसेस करने की प्रक्रिया डिवाइस में ही होती है और Google नतीजों या इमेज के डेटा को सेव नहीं करता. एपीआई, ML किट बारकोड स्कैन करने वाले एपीआई के कोड के फ़ॉर्मैट पर भी काम करता है और वही Barcode ऑब्जेक्ट दिखाता है.
यह एपीआई उन ऐप्लिकेशन के लिए बिलकुल सही है, जिन्हें बस एक कोड स्कैन करना पड़ता है. इसके लिए, खास यूज़र इंटरफ़ेस (यूआई) या कैमरे के इस्तेमाल की ज़रूरत नहीं होती है. इसे पूरी तरह से Google Play सेवाओं में लागू किया जाता है, इसलिए आपके ऐप्लिकेशन के साइज़ पर कोई खास असर नहीं पड़ता है. कस्टम यूआई की ज़रूरत वाले ज़्यादा जटिल मामलों में, सीधे ML किट बारकोड स्कैनिंग एपीआई का इस्तेमाल करें.
अगर आपको कुछ पूछना है या कोई गड़बड़ी सबमिट करनी है, तो ML Kit समुदाय पेज पर जाएं.
शुरू करने से पहले
अपने ऐप्लिकेशन को तैयार करने के लिए, नीचे दिए गए सेक्शन में बताया गया तरीका अपनाएं.
अपना ऐप्लिकेशन कॉन्फ़िगर करें
अपनी टॉप-लेवल
settings.gradle
फ़ाइल में,dependencyResolutionManagement
ब्लॉक के अंदर Google का Maven डेटा स्टोर करने की जगह और Maven सेंट्रल रिपॉज़िटरी शामिल करें:dependencyResolutionManagement { repositories { google() mavenCentral() } }
अपने मॉड्यूल की Gradle बिल्ड फ़ाइल में
play-services-code-scanner
SDK टूल के लिए Google Play सेवाओं की डिपेंडेंसी जोड़ें, जो आम तौर परapp/build.gradle
होती है:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3' }
आप अपना ऐप्लिकेशन कॉन्फ़िगर कर सकते हैं, ताकि जब आपका ऐप्लिकेशन Play Store से इंस्टॉल किया जाए, तब Google Play सेवाएं उस डिवाइस पर स्कैनर मॉड्यूल को अपने आप डाउनलोड करें.
<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();
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();