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

