الماسح الضوئي لرمز Google (إصدار تجريبي)

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

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

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

قبل البدء

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

تهيئة تطبيقك

  1. في ملف settings.gradle ذي المستوى الأعلى، عليك تضمين مستودع Google Maven و مستودع 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.0.0-beta3'
    }
    
  3. يمكنك تهيئة تطبيقك حتى تتمكن خدمات Google Play من تنزيل وحدة الماسح الضوئي تلقائيًا إلى الجهاز أثناء تثبيت التطبيق من متجر Play.

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

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

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

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

1- (اختياري) ضبط الماسح الضوئي للرموز

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

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. تعامل مع الرمز الشريطي الناتج.

Kotlin

val rawValue: String? = barcode.rawValue

لغة Java

String rawValue = barcode.getRawValue();