סורק הקודים של Google (בטא)

ה-API של סורק הקודים של Google מספק פתרון מלא לסריקת קודים בלי לבקש מהאפליקציה לבקש הרשאת גישה תוך שמירה על פרטיות המשתמשים. ניתן לעשות זאת על ידי האצלת הסריקה של הקוד לשירותי Google Play והחזרת תוצאות הסריקה לאפליקציה בלבד. כל עיבוד התמונות מתבצע במכשיר, ו-Google לא מאחסנת את התוצאות או את נתוני התמונות. אותו ממשק API תומך באותם פורמטים של קודים כמו ב-ML Kit Barcode Scanning API, ומחזיר את אותו אובייקט Barcode (ברקוד).

ממשק ה-API הזה אידיאלי לאפליקציות שפשוט צריכות לסרוק קוד ולא דורשות ממשק משתמש מותאם אישית או ממשק מצלמה. ההטמעה מיושמת באופן מלא בשירותי Google Play, כך שאין השפעה משמעותית על גודל האפליקציה. לתרחישים מורכבים יותר שדורשים ממשק משתמש מותאם אישית, השתמשו ישירות ב-ML Kit Barcode Scanning API.

אם יש לכם שאלות, אם אתם רוצים לדווח על באג או זקוקים לעזרה, היכנסו לדף הקהילה של ערכת ה-ML.

לפני שמתחילים

כדי להכין את האפליקציה, יש להשלים את השלבים בקטעים הבאים.

מגדירים את האפליקציה

  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.0.0-beta3'
    }
    
  3. ניתן להגדיר שהאפליקציה Google Play Services תוריד למכשיר את מודול הסורק באופן אוטומטי בזמן שהאפליקציה מותקנת דרך חנות Play.

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

    אתם יכולים גם לבדוק באופן מפורש את הזמינות של מודול הסורק ולבקש הורדה באמצעות ModuleInstallClient API של Google Play Services.

    אם לא תפעילו הורדות של המודול בזמן ההתקנה או תבקשו הורדה מפורשת, שירותי Google Play יורידו את המודול של הסורק בפעם הראשונה שנעשה בו שימוש, אם הוא עדיין לא הותקן בתרחיש לדוגמה אחר.

סריקת קוד

1. (אופציונלי) מגדירים את סורק הקודים

אם אתם יודעים אילו פורמטים של ברקוד אתם מצפים לקרוא, תוכלו לשפר את המהירות של מזהה הברקוד באמצעות הגדרה שלו כך שיזהה רק את הפורמטים האלה. לדוגמה, כדי לזהות רק קודי Aztec וקודי QR, צריך לבנות אובייקט של GmsBarcodeScanner options כמו בדוגמה הבאה:

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();