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

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

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

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

סרטון 1. שילוב עם Google Code Scanner סרטון 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 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();
    

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