
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:
val options = GmsBarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_QR_CODE,
Barcode.FORMAT_AZTEC)
.build()
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
.setBarcodeFormats(
Barcode.FORMAT_QR_CODE,
Barcode.FORMAT_AZTEC)
.build();
2. Receba uma instância de GmsBarcodeScanner
val scanner = GmsBarcodeScanning.getClient(this)
// Or with a configured options
// val scanner = GmsBarcodeScanning.getClient(this, options)
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()
scanner.startScan()
.addOnSuccessListener { barcode ->
// Task completed successfully
}
.addOnCanceledListener {
// Task canceled
}
.addOnFailureListener { e ->
// Task failed with an exception
}
scanner
.startScan()
.addOnSuccessListener(
barcode -> {
// Task completed successfully
})
.addOnCanceledListener(
() -> {
// Task canceled
})
.addOnFailureListener(
e -> {
// Task failed with an exception
});