סורק הקודים של 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 לסרוק באופן אוטומטי ברקודים רחוקים מהמצלמה. מתי שהמשתמשים יפנו את המכשירים שלהם לברקוד, הסורק יזהה ולהגדיל את התצוגה של הברקוד. כך לא יהיה צורך לשנות את מרחק התצוגה באופן ידני שינויים שמאפשרים סריקת הברקוד מהירה, מדויקת ונגישה יותר (צפו בסרטון 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 עבור play-services-code-scanner SDK לקובץ ה-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>
    

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

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

סריקת קוד

מבצעים את השלבים הבאים כדי לסרוק ברקוד.

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

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