A API Google Code scanner fornece uma solução completa para ler códigos sem exigir que o app solicite permissão de câmera, preservando a privacidade do usuário. É possível delegar a tarefa de verificar o código no Google Play Services e retornar apenas os resultados da verificação ao app. Todo o processamento de imagens ocorre no dispositivo, e o Google não armazena os resultados ou os dados de imagem. A API é compatível com os mesmos formatos de código que a API ML Kit Barcode Scanning e retorna o mesmo objeto Barcode.
Essa API é ideal para apps que simplesmente precisam ler um código e não exigem uma experiência personalizada na IU ou na câmera. A implementação reside inteiramente no Google Play Services, portanto, não há impacto significativo no tamanho do seu app. Para casos de uso mais complexos que exigem uma IU personalizada, use a API ML Kit Barcode Scanning diretamente.
Se você tiver dúvidas, quiser enviar um bug ou precisar de ajuda, consulte a página da comunidade do Kit de ML.
Antes de começar
Para preparar o app, siga as etapas nas seções a seguir.
Configurar o app
No arquivo
settings.gradle
de nível superior, inclua o repositório Maven do Google e o repositório central do Maven no blocodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Adicione a dependência do Google Play Services para o SDK
play-services-code-scanner
ao arquivo de build do Gradle do seu módulo, que geralmente éapp/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3' }
Você pode configurar o app para que o Google Play Services faça o download automaticamente do módulo do scanner para o dispositivo enquanto o app for instalado pela Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Você também pode conferir explicitamente a disponibilidade do módulo do scanner e solicitar o download pela API ModuleInstallClient do Google Play Services.
Se você não ativar os downloads de módulos no momento da instalação nem solicitar o download explícito, o Google Play Services fará o download do módulo da verificação pela primeira vez, se ele ainda não tiver sido instalado para outro caso de uso.
Ler um código
1. (Opcional) Configurar o leitor de código
Se você souber quais formatos de código de barras espera ler, você poderá aumentar a velocidade do detector de código de barras configurando-o para detectar apenas esses formatos. Por exemplo, para detectar apenas códigos Aztec e QR, crie um objeto GmsBarcodeScannerOptions como no exemplo a seguir:
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. Receba uma instância 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. Solicite uma leitura de código chamando 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. Gerencie o código de barras resultante
Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();