توفّر واجهة برمجة التطبيقات Google Code Scanner حلاً كاملاً لفحص الرمز
بدون الحاجة إلى طلب إذن الكاميرا من التطبيق مع الحفاظ على خصوصية
المستخدم. يمكن تحقيق ذلك من خلال تفويض مهمة فحص الرمز على "خدمات Google Play" وعرض نتائج الفحص فقط على تطبيقك (الفيديو 1).
تتم جميع عمليات معالجة الصور على الجهاز ولا يخزِّن محرّك بحث Google النتائج أو بيانات الصور. تتوافق واجهة برمجة التطبيقات مع تنسيقات الرموز نفسها التي تستخدمها واجهة برمجة تطبيقات ML Kit Barcode Survey وتعرض
الكائن Barcode
نفسه.
وتُعدّ واجهة برمجة التطبيقات هذه مثالية للتطبيقات التي تتطلب مسحًا سريعًا للرموز البرمجية بدون الحاجة إلى تجربة مخصّصة لواجهة المستخدم أو الكاميرا. وتتم عملية التنفيذ بالكامل ضمن "خدمات Google Play"، ما يضمن أقل تأثير ممكن على حجم تطبيقك.
بدءًا من الإصدار 16.1.0، يمكنك تمكين التكبير التلقائي للسماح للماسح الضوئي لرموز Google بمسح الرموز الشريطية البعيدة عن الكاميرا تلقائيًا. عندما يوجه المستخدمون أجهزتهم إلى رمز شريطي، فإن الماسح الضوئي سيكتشف الرمز الشريطي ويكبّره بذكاء. وهذا يلغي الحاجة إلى تعديلات التكبير/التصغير اليدوية، ما يجعل مسح الرمز الشريطي أسرع وأكثر دقة ويسهل الوصول إليه (راجع الفيديو 2).
الفيديو 1. دمج الماسح الضوئي لرمز Google | الفيديو 2. تأثير التكبير/التصغير التلقائي |
بالنسبة إلى حالات الاستخدام الأكثر تعقيدًا التي تتطلّب واجهة مستخدم مخصّصة، ننصحك باستخدام ML Kit Barcode Inspect API مباشرةً.
إذا كانت لديك أسئلة أو تريد إرسال إشعار عن الأخطاء أو كنت بحاجة إلى مساعدة، يُرجى الاطّلاع على صفحة منتدى 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();