توفر واجهة برمجة التطبيقات الماسحة الضوئية لرموز Google حلاً كاملاً لمسح الرموز ضوئيًا بدون مطالبة تطبيقك بطلب إذن لاستخدام الكاميرا، مع الحفاظ على خصوصية المستخدم. ويمكن تحقيق ذلك من خلال تفويض مهمة مسح الرمز ضوئيًا إلى خدمات Google Play وعرض نتائج الفحص فقط على تطبيقك. وتتم كل عمليات معالجة الصور على الجهاز ولا تخزِّن Google النتائج أو بيانات الصور. تتوافق واجهة برمجة التطبيقات مع تنسيقات الرموز نفسها المتوفّرة في واجهة برمجة تطبيقات فحص الرمز الشريطي لـ ML Kit وتعرض كائن الرمز الشريطي نفسه.
تُعد واجهة برمجة التطبيقات هذه مثالية للتطبيقات التي تحتاج ببساطة إلى مسح رمز ضوئيًا ولا تتطلب تجربة واجهة مستخدم أو كاميرا مخصّصة. وتتم عملية التنفيذ هذه بالكامل ضمن خدمات Google Play، ولذلك ليس هناك تأثير كبير على حجم تطبيقك. وبالنسبة إلى حالات الاستخدام الأكثر تعقيدًا والتي تتطلب واجهة مستخدم مخصّصة، يمكنك استخدام واجهة برمجة تطبيقات فحص الرمز الشريطي ML Kit مباشرة.
إذا كانت لديك أسئلة أو تريد إرسال خطأ أو كنت بحاجة إلى المساعدة، يمكنك الاطّلاع على صفحة منتدى ML Kit.
قبل البدء
لإعداد تطبيقك، أكمِل الخطوات الواردة في الأقسام التالية.
تهيئة تطبيقك
في ملف
settings.gradle
ذي المستوى الأعلى، عليك تضمين مستودع Google Maven و مستودع Maven المركزي ضمن المجموعةdependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
أضف تبعية خدمات Google Play لـ
play-services-code-scanner
حزمة تطوير البرامج (SDK) إلى ملف إنشاء Gradle في وحدتك، والذي عادةً ما يكونapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3' }
يمكنك تهيئة تطبيقك حتى تتمكن خدمات Google Play من تنزيل وحدة الماسح الضوئي تلقائيًا إلى الجهاز أثناء تثبيت التطبيق من متجر Play.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
ويمكنك أيضًا التحقّق صراحةً من مدى توفّر وحدة الماسح الضوئي وطلب التنزيل من خلال خدمات PlayInstallClient API في خدمات 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();
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. تعامل مع الرمز الشريطي الناتج.
Kotlin
val rawValue: String? = barcode.rawValue
لغة Java
String rawValue = barcode.getRawValue();