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

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

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

החל מגרסה 16.1.0, אפשר להפעיל זום אוטומטי כדי לאפשר לסורק הקודים של Google לסרוק באופן אוטומטי קודי מ barras שמרוחקים מהמצלמה. כשמשתמשים מכוונים את המכשירים שלהם לברקוד, הסורק מזהה את הברקוד באופן חכם ומגדיל אותו. כך אין צורך לבצע התאמות ידניות של הזום, והסריקה של ברקודים מהירה, מדויקת ונגישה יותר (ראו סרטון 2).

סרטון 1. שילוב של סורק הקודים של Google סרטון 2. אפקט זום אוטומטי

בתרחישי שימוש מורכבים יותר שדורשים ממשק משתמש מותאם אישית, מומלץ להשתמש ישירות ב-ML Kit Barcode Scanning API.

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

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

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

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

  1. בקובץ settings.gradle ברמה העליונה, כוללים את מאגר Maven של Google ואת מאגר Maven המרכזי בתוך הבלוק dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. מוסיפים את התלות של Google Play Services ב-SDK של play-services-code-scanner לקובץ ה-build של Gradle של המודול. בדרך כלל מדובר בקובץ app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  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. אופציונלי: מגדירים את סורק הקודים.

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

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