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

Google code Scanner API מספק פתרון מלא לסריקת קוד בלי שתצטרכו לבקש מהאפליקציה הרשאת גישה למצלמה, תוך שמירה על פרטיות המשתמשים. כדי לעשות זאת, אתם יכולים להעניק את המשימה של סריקת הקוד ל-Google Play Services והחזרה של תוצאות הסריקה לאפליקציה בלבד (סרטון 1). כל עיבוד התמונות מתבצע במכשיר ו-Google לא מאחסנת את התוצאות או את נתוני התמונה. ה-API תומך באותם פורמטים של קוד כמו ML Kit Barcode Scanner ומחזיר את אותו אובייקט 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 ב-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. אופציונלי: מגדירים את סורק הקודים.

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