ה-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.
לפני שמתחילים
כדי להכין את האפליקציה שלך, עליך להשלים את השלבים הבאים.
הגדרת האפליקציה
בקובץ
settings.gradle
ברמה העליונה, צריך לכלול את מאגר Maven ב-Google ואת המאגר המרכזי של Maven בבלוקdependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
מוסיפים את התלות ב-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' }
תוכלו להגדיר שהאפליקציה שלכם תכלול את מערכת 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 מורידה את מודול הסורק בפעם הראשונה שמשתמשים בו.
סריקת קוד
מטמיעים את השלבים הבאים כדי לסרוק ברקוד.
אופציונלי: מגדירים את סורק הקודים.
אם אתם יודעים אילו פורמטים של ברקוד אתם מצפים לקרוא, תוכלו לשפר את המהירות של מזהה הברקוד על ידי זיהוי הפורמטים האלו בלבד. לדוגמה, כדי לזהות רק קוד 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();
מקבלים מכונה של
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);
כדי לבקש סריקת קוד, יש להתקשר למספר
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 });
צריך להשתמש בכינוי
Barcode
.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();