קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

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

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

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

יש לך שאלות? רוצה לדווח על באג או לקבל עזרה? אפשר להיכנס לדף הקהילה של ML Kit.

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

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

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

  1. בקובץ settings.gradle ברמה העליונה, מוסיפים את מאגר Google Maven ו-מאגר Maven Central בתוך הבלוק 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 בזמן ההתקנה של האפליקציה מחנות Play.

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

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

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

סריקת קוד

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

אם אתם יודעים אילו פורמטים של ברקוד תרצו לקרוא, תוכלו לשפר את המהירות של מזהה הברקוד באמצעות זיהוי הפורמטים האלה בלבד. לדוגמה, כדי לזהות רק קודי Aztec וקודי QR, צריך ליצור אובייקט 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();