Lecteur de code Google (bêta)

L'API de lecture de code de Google offre une solution complète pour scanner des codes sans que votre application ne nécessite l'autorisation d'accès à l'appareil photo, tout en préservant la confidentialité des utilisateurs. Pour ce faire, vous déléguez la tâche de numérisation du code aux services Google Play et ne renvoyez que les résultats de l'analyse à votre application. Le traitement de l'image est effectué sur l'appareil, et Google ne stocke pas les résultats ni les données des images. L'API accepte les mêmes formats de code que l'API ML Kit de lecture de codes-barres et renvoie le même objet Barcode.

Cette API est idéale pour les applications qui ont simplement besoin de scanner un code et ne nécessitent pas d'interface utilisateur ni d'appareil photo personnalisés. La mise en œuvre est entièrement intégrée aux services Google Play. La taille de votre application n'est donc pas significative. Pour les cas d'utilisation plus complexes nécessitant une interface utilisateur personnalisée, utilisez directement l'API de lecture de code-barres ML Kit.

Si vous avez des questions, si vous souhaitez signaler un bug ou si vous avez besoin d'aide, consultez la page de la communauté de 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 le dépôt central Maven dans le bloc dependencyResolutionManagement:

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

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3'
    }
    
  3. Vous pouvez configurer votre application de sorte que les services Google Play téléchargent automatiquement le module de scanner sur l'appareil lorsque l'application est installée depuis le Play Store.

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

    Vous pouvez également vérifier explicitement la disponibilité du module de scanner et demander un téléchargement via l'API ModuleInstallClient des services Google Play.

    Si vous n'activez pas le téléchargement de modules au moment de l'installation ou si vous demandez un téléchargement explicite, les services Google Play téléchargent le module de scanner la première fois qu'il est utilisé, s'il n'a pas déjà été installé pour un autre cas d'utilisation.

Scanner un code

1. (Facultatif) Configurer le lecteur de code

Si vous savez quels formats de code-barres vous attendez à lire, vous pouvez améliorer la vitesse du détecteur de code-barres en le configurant pour qu'il ne détecte que ces formats. Par exemple, pour ne détecter que le code Aztec et les codes QR, créez un objet 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();

2. Obtenir une instance de 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. 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érer le code-barres obtenu

Kotlin

val rawValue: String? = barcode.rawValue

Java

String rawValue = barcode.getRawValue();