Lecteur de code Google (Android uniquement)

L'API de lecteur de code Google offre une solution complète pour scanner du code sans que votre appli ait besoin de demander l'autorisation d'accéder à l'appareil photo, tout en préservant l'utilisateur confidentialité. Cela s'effectue en déléguant la tâche de scanner le code à services Google Play et en renvoyant uniquement les résultats d'analyse à votre application (vidéo 1). Le traitement des images s'effectue intégralement sur l'appareil, et Google ne stocke pas les résultats. ou d'images. L'API accepte les mêmes formats de code que API ML Kit Barcode Scanning et renvoie le identique Barcode .

Cette API est idéale pour les applications qui nécessitent de scanner facilement du code, pour une interface utilisateur ou une caméra personnalisée. L'implémentation se trouve entièrement dans services Google Play, avec un impact minimal sur la taille de votre application.

À partir de la version 16.1.0, vous pouvez activer le zoom automatique pour scanner automatiquement les codes-barres éloignés de l'appareil photo. Quand ? les utilisateurs pointent leur appareil vers un code-barres, le scanner détecte intelligemment et zoomez sur le code-barres. Ainsi, il n'est plus nécessaire d'effectuer un zoom manuel pour rendre la lecture des codes-barres plus rapide, plus précise et plus accessible (voir Vidéo 2).

Vidéo 1. Intégration du lecteur de code Google Vidéo 2. Effet de zoom automatique

Pour les cas d'utilisation plus complexes nécessitant une interface utilisateur personnalisée, nous vous recommandons d'utiliser API ML Kit Barcode Scanning directement

Si vous avez des questions, si vous souhaitez signaler un bug ou si vous avez besoin d'aide, consultez le page de la communauté ML Kit.

Avant de commencer

Pour préparer votre application, procédez comme indiqué dans les sections suivantes.

Configurer votre application

  1. Dans votre fichier settings.gradle de premier niveau, incluez le dépôt Maven de Google et dans le dépôt central Maven Bloc dependencyResolutionManagement:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. Ajoutez la dépendance des services Google Play pour play-services-code-scanner SDK au fichier de compilation Gradle de votre module, généralement app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Vous pouvez configurer votre application pour que les services Google Play s'exécutent automatiquement téléchargez le module d'analyse sur l'appareil lorsque votre application est installée depuis sur le Play Store.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    Vous pouvez aussi vérifier explicitement la disponibilité du module d'analyse télécharger via les services Google Play ModuleInstallClient API.

    Si vous n'activez pas les téléchargements de modules au moment de l'installation ou et que le module d'analyse n'est pas déjà installé cas d'utilisation : les services Google Play téléchargent le module scanner en premier l'heure d'utilisation.

Scanner un code

Pour scanner un code-barres, procédez comme suit :

  1. Facultatif: configurez le lecteur de code.

    Si vous connaissez les formats de code-barres que vous avez l'intention de lire, vous pouvez améliorer le la vitesse du détecteur de code-barres en le configurant pour qu'il ne détecte que . Par exemple, pour ne détecter que le code aztèque et les codes QR, créez une GmsBarcodeScannerOptions comme dans l'exemple suivant:

    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();
    

    Par défaut, le zoom automatique est désactivé. Activer la fonctionnalité de zoom automatique à partir de la version 16.1.0, appelez enableAutoZoom() comme indiqué dans l'exemple de code suivant.

    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. Obtenez une instance de GmsBarcodeScanner, comme indiqué dans l'exemple de code:

    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. Demandez un scan de code en appelant 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. Gérez le Barcode obtenu.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();