A API Google Code Scanner é uma solução completa para a leitura de códigos
sem exigir que o app solicite a permissão de acesso à câmera, preservando a
privacidade. Isso é feito ao delegar a tarefa de ler o código para
Google Play Services e retornar apenas os resultados da verificação ao seu app (Vídeo 1).
Todo o processamento de imagens ocorre no dispositivo, e o Google não armazena os resultados
ou dados de imagem. A API suporta os mesmos formatos de código que a
API ML Kit Barcode Scanning e retorna o
o mesmo Barcode
objeto.
Essa API é ideal para apps que exigem uma verificação de código descomplicada, sem a necessidade para uma IU personalizada ou experiência de câmera. A implementação fica inteiramente dentro Google Play Services, garantindo impacto mínimo sobre o tamanho do seu app.
A partir da versão 16.1.0, você pode ativar o zoom automático para permitir que o código do Google para ler automaticamente os códigos de barras que estiverem longe da câmera. Quando os usuários apontam os dispositivos para um código de barras, o leitor detecta de forma inteligente e aumentar o zoom no código de barras. Isso elimina a necessidade de zoom manual tornando a leitura de código de barras mais rápida, mais precisa e mais acessível (veja o vídeo 2).
Vídeo 1. Integração com o leitor de código do Google | Vídeo 2. Efeito de zoom automático |
Para casos de uso mais complexos que exigem uma interface personalizada, recomendamos o uso do API ML Kit Barcode Scanning diretamente.
Se você tiver dúvidas, quiser informar um bug ou precisar de assistência, verifique 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 Repositório Maven do Google e o repositório Maven central (em inglês) na BlocodependencyResolutionManagement
:dependencyResolutionManagement { repositories { google() mavenCentral() } }
Adicionar a dependência do Google Play Services para o
play-services-code-scanner
SDK 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.1.0' }
Você pode configurar seu app para que o Google Play Services seja configurado automaticamente faça o download do módulo do scanner no dispositivo enquanto seu aplicativo está instalado Play Store.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
Também é possível verificar explicitamente a disponibilidade do módulo do scanner e solicitar Fazer o download pelo ModuleInstallClient do Google Play Services API.
Se você não ativar os downloads de módulos no momento da instalação ou solicitar conteúdo explícito downloads, e se o módulo do scanner não estiver instalado para outro caso de uso: o Google Play Services faz o download do módulo do scanner primeiro quando é usado.
Ler um código
Implemente as etapas a seguir para ler um código de barras.
Opcional: configure o leitor de código.
Se você souber quais formatos de código de barras espera ler, poderá melhorar a do detector de código de barras configurando-o para detectar apenas formatos. Por exemplo, para detectar apenas o código Aztec e os QR codes, crie uma
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();
Por padrão, o zoom automático está desativado. Para ativar a funcionalidade de zoom automático a partir da versão 16.1.0, chame
enableAutoZoom()
, como mostrado no exemplo de código a seguir.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();
Receba uma instância de
GmsBarcodeScanner
, como mostrado no exemplo de código: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);
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 });
Processe o
Barcode
resultante.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();