Die Code Scanner API von Google bietet eine Komplettlösung zum Scannen von Code
ohne dass Ihre App die Kameraberechtigung anfordern muss.
Datenschutz. Dazu wird das Scannen des Codes an
Google Play-Dienste und geben nur die Scanergebnisse an Ihre App zurück (Video 1).
Die gesamte Bildverarbeitung erfolgt auf dem Gerät und Google speichert die Ergebnisse nicht
oder Bilddaten. Die API unterstützt dieselben Codeformate wie die
ML Kit Barcode Scanning API und gibt den
Gleicher Barcode
-Objekt enthält.
Diese API eignet sich ideal für Apps, die einen nahtlosen Codescan erfordern. für eine benutzerdefinierte Benutzeroberfläche oder Kamera. Die Implementierung befindet sich vollständig Google Play-Dienste. Dadurch werden die Auswirkungen auf die Größe deiner App minimal.
Ab Version 16.1.0 können Sie den automatischen Zoom aktivieren, damit der Google-Code um Barcodes, die weit von der Kamera entfernt sind, automatisch zu scannen. Wann? wenn Nutzende ihr Gerät auf einen Barcode richten, erkennt der Scanner intelligent und zoomen Sie den Barcode heran. Dadurch entfällt die Notwendigkeit für manuelles Zoomen. Anpassungen, wodurch das Scannen von Barcodes schneller, genauer und leichter zugänglich wird (siehe Video 2).
Video 1. Google Code Scanner-Integration | Video 2. Effekt „Automatischer Zoom“ |
Für komplexere Anwendungsfälle, die eine benutzerdefinierte UI erfordern, empfehlen wir die Verwendung des ML Kit Barcode Scanning API direkt verfügbar.
Wenn Sie Fragen haben, einen Fehler melden möchten oder Hilfe benötigen, sehen Sie in der ML Kit-Community-Seite
<ph type="x-smartling-placeholder">Hinweis
<ph type="x-smartling-placeholder">Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.
Eigene App konfigurieren
Fügen Sie in der Datei
settings.gradle
der obersten Ebene Maven-Repository von Google und Maven Central Repository im BlockdependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Füge die Google Play-Dienste-Abhängigkeit für
play-services-code-scanner
hinzu SDK in die Gradle-Build-Datei deines Moduls (üblicherweiseapp/build.gradle
):dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Du kannst deine App so konfigurieren, dass Google Play-Dienste automatisch aktiviert werden das Scanner-Modul auf das Gerät herunterladen, während Ihre App installiert wird, über im Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Sie können die Verfügbarkeit des Scanner-Moduls auch explizit prüfen Download über die Google Play-Dienste ModuleInstallClient API hinzu.
Wenn Sie das Herunterladen von Modulen für die Installation nicht aktivieren oder explizite Anfragen Downloads – und das Scanner-Modul ist nicht bereits für eine andere Die Google Play-Dienste laden das Scanner-Modul Zeit verwendet wird.
Code scannen
Führen Sie die folgenden Schritte aus, um einen Barcode zu scannen.
Optional: Konfigurieren Sie den Codescanner.
Wenn Sie wissen, welche Barcodeformate Sie lesen möchten, können Sie die Geschwindigkeit des Barcode-Detektors, indem Sie ihn so konfigurieren, dass nur diese Formaten. Um beispielsweise nur Aztec-Code und QR-Codes zu erkennen, erstellen Sie eine
GmsBarcodeScannerOptions
wie im folgenden Beispiel dargestellt: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();
Der automatische Zoom ist standardmäßig deaktiviert. Um den automatischen Zoom zu aktivieren Ab Version 16.1.0 müssen Sie
enableAutoZoom()
aufrufen, wie in der folgenden Codebeispielen.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();
Rufen Sie eine
GmsBarcodeScanner
-Instanz ab. wie im Codebeispiel gezeigt: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);
Fordern Sie ein Codescans an, indem Sie
startScan()
aufrufen.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 });
Verarbeitet das resultierende
Barcode
.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();