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