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