ماسح رموز Google (Android فقط)

توفّر واجهة برمجة التطبيقات 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.

قبل البدء

لإعداد تطبيقك، أكمِل الخطوات الواردة في الأقسام التالية.

ضبط إعدادات تطبيقك

  1. في ملف settings.gradle ذي المستوى الأعلى، ضمِّن مستودع Maven من Google ومستودع Maven المركزي ضمن المجموعة dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. أضِف الاعتمادية لخدمات Google Play لحزمة تطوير البرامج (SDK) play-services-code-scanner إلى ملف تصميم Gradle الخاص بوحدتك، والذي يكون عادةً app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. يمكنك ضبط تطبيقك ليتمكّن "خدمات Google Play" من تنزيل وحدة الماسح الضوئي تلقائيًا على الجهاز أثناء تثبيت التطبيق من "متجر Play".

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    يمكنك أيضًا التحقّق بشكل واضح من مدى توفُّر وحدة الماسح الضوئي وطلب التنزيل من خلال ModuleInstallClient API في "خدمات Google Play".

    في حال عدم تفعيل عمليات تنزيل وحدات وقت التثبيت أو طلب عمليات تنزيل فاضحة، ولم يتم تثبيت وحدة الماسح الضوئي من قبل لحالة استخدام أخرى، تنزِّل "خدمات Google Play" وحدة الفحص في أول مرة يتم استخدامها.

مسح رمز ضوئيًا

نفِّذ الخطوات التالية لمسح الرمز الشريطي ضوئيًا.

  1. اختياري: يمكنك ضبط الماسح الضوئي للرموز.

    إذا كنت تعرف تنسيقات الرمز الشريطي التي تتوقّع قراءتها، يمكنك تحسين سرعة أداة الكشف عن الرمز الشريطي من خلال تكوينها لاكتشاف تلك التنسيقات فقط. على سبيل المثال، لاكتشاف رمز 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();
    
  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. يمكنك التعامل مع Barcode الناتجة.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();