توفّر واجهة برمجة التطبيقات Google Code Scanner API حلاً كاملاً لمسح الرموز ضوئيًا بدون الحاجة إلى أن يطلب تطبيقك الإذن باستخدام الكاميرا، مع الحفاظ على خصوصية المستخدم. ويتم ذلك من خلال تفويض مهمة مسح الرمز ضوئيًا إلى "خدمات Google Play" وإرجاع نتائج المسح الضوئي فقط إلى تطبيقك (الفيديو 1).
تتم معالجة جميع الصور على الجهاز، ولا تخزّن Google النتائج أو بيانات الصور. تتيح واجهة برمجة التطبيقات تنسيقات الرموز نفسها التي تتيحها
واجهة برمجة التطبيقات لمسح الرموز الشريطية في حزمة تعلّم الآلة وتعرض
عنصر Barcode
نفسه.
تُعدّ واجهة برمجة التطبيقات هذه مثالية للتطبيقات التي تتطلّب مسحًا سلسًا للرموز بدون الحاجة إلى واجهة مستخدم مخصّصة أو تجربة كاميرا. يتم تنفيذ هذه العملية بالكامل ضمن "خدمات Google Play"، ما يضمن الحدّ من التأثير في حجم تطبيقك.
بدءًا من الإصدار 16.1.0، يمكنك تفعيل ميزة التكبير التلقائي للسماح لبرنامج Google Code Scanner بمسح الرموز الشريطية البعيدة عن الكاميرا ضوئيًا تلقائيًا. عندما يوجّه المستخدمون أجهزتهم نحو رمز شريطي، سيتعرّف الماسح الضوئي عليه بذكاء ويكبّره. يؤدي ذلك إلى إلغاء الحاجة إلى تعديل التكبير أو التصغير يدويًا، ما يجعل مسح الرمز الشريطي أسرع وأكثر دقة وأسهل في الاستخدام (انظر الفيديو 2).
![]() |
![]() |
| الفيديو 1: دمج Google Code Scanner | الفيديو 2: تأثير التكبير/التصغير التلقائي |
بالنسبة إلى حالات الاستخدام الأكثر تعقيدًا التي تتطلّب واجهة مستخدم مخصّصة، ننصح باستخدام واجهة برمجة التطبيقات لمسح الرموز الشريطية ضوئيًا في حزمة تعلّم الآلة مباشرةً.
إذا كانت لديك أسئلة أو أردت الإبلاغ عن خطأ أو كنت بحاجة إلى مساعدة، يُرجى الاطّلاع على صفحة منتدى "حزمة تعلّم الآلة".
قبل البدء
لإعداد تطبيقك، أكمِل الخطوات الواردة في الأقسام التالية.
إعداد تطبيقك
في ملف
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()
جافا
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()
جافا
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)
جافا
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 }
جافا
scanner .startScan() .addOnSuccessListener( barcode -> { // Task completed successfully }) .addOnCanceledListener( () -> { // Task canceled }) .addOnFailureListener( e -> { // Task failed with an exception });
تعامَل مع
Barcodeالناتجة.Kotlin
val rawValue: String? = barcode.rawValue
جافا
String rawValue = barcode.getRawValue();

