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

توفر واجهة برمجة تطبيقات الماسح الضوئي لرمز Google حلاً كاملاً لمسح الرموز البرمجية بدون أن يطلب تطبيقك إذن الوصول إلى الكاميرا، مع الحفاظ على هوية المستخدم الخصوصية. يتم تحقيق ذلك بتفويض مهمة مسح التعليمات البرمجية إلى خدمات Google Play وعرض نتائج الفحص فقط على تطبيقك (الفيديو 1) تتم كل عمليات معالجة الصور على الجهاز ولا تخزِّن Google النتائج. أو بيانات الصور. تتيح واجهة برمجة التطبيقات نفس تنسيقات الرموز التي تستخدمها واجهة برمجة تطبيقات مسح الرمز الشريطي لحزمة تعلّم الآلة وعرض نفس Barcode الخاص بك.

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

بدءًا من الإصدار 16.1.0، يمكنك تفعيل التكبير التلقائي للسماح برمز Google ماسح ضوئي لمسح الرموز الشريطية ضوئيًا تلقائيًا والتي تكون بعيدة عن الكاميرا. فعندما يشير المستخدمون إلى رمز شريطي في أجهزتهم، وسيكتشف الماسح الضوئي بذكاء وتكبير الرمز الشريطي. يلغي ذلك الحاجة إلى التكبير/التصغير اليدوي إجراء تعديلات، ما يجعل عملية مسح الرموز الشريطية ضوئيًا أسرع وأكثر دقةً وأسهل في الاستخدام (اطّلِع على الفيديو 2).

الفيديو 1. دمج الماسح الضوئي لرمز Google الفيديو 2. تأثير التكبير التلقائي

بالنسبة إلى حالات الاستخدام الأكثر تعقيدًا التي تتطلّب واجهة مستخدم مخصَّصة، ننصحك باستخدام واجهة برمجة تطبيقات مسح الرمز الشريطي لحزمة تعلّم الآلة مباشرةً.

إذا كان لديك أسئلة أو أردت إرسال طلب بشأن خطأ أو كنت بحاجة إلى المساعدة، يُرجى مراجعة صفحة منتدى ML Kit.

قبل البدء

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

إعداد تطبيقك

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

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. إضافة اعتماد "خدمات Google Play" إلى play-services-code-scanner حزمة SDK إلى ملف إنشاء 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>
    

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

    في حال عدم تفعيل عمليات تنزيل الوحدات في وقت التثبيت أو طلب الحصول على إذن صريح عمليات التنزيل، ولم يتم تثبيت وحدة الماسح الضوئي من قبل في جهاز آخر حالة الاستخدام: تنزِّل "خدمات 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();