Google Code Scanner API – это комплексное решение для сканирования кода, которое не требует от вашего приложения запрашивать разрешение на доступ к камере и при этом обеспечивает конфиденциальность пользователей. Для сканирования кода используются сервисы Google Play, а в приложение возвращаются только результаты сканирования (видео 1).
Изображения обрабатываются непосредственно на устройстве. Google не хранит результаты сканирования и не предоставляет доступ к изображениям. API поддерживает те же форматы кодов, что и ML Kit Barcode Scanning API, и возвращает тот же объект Barcode.
Этот API идеально подходит для приложений, которым требуется бесперебойное сканирование кода без необходимости создавать собственный интерфейс или камеру. Реализация полностью находится в сервисах Google Play, поэтому размер приложения практически не увеличивается.
Начиная с версии 16.1.0 вы можете включить автозум, чтобы сканер кода Google автоматически сканировал штрихкоды, которые находятся далеко от камеры. Когда пользователи наводят устройство на штрихкод, сканер автоматически определяет его и увеличивает масштаб. Это позволяет не настраивать масштаб вручную, а значит, сканировать штрихкоды быстрее, точнее и удобнее (см. видео 2).
![]() |
![]() |
| Видео 1. Интеграция со сканером кода Google | Видео 2. Эффект автозума |
Для более сложных задач, требующих создания собственного интерфейса, рекомендуем использовать ML Kit Barcode Scanning API напрямую.
Если у вас есть вопросы, вы хотите сообщить об ошибке или вам нужна помощь, посетите страницу сообщества ML Kit.
Подготовка
Чтобы подготовить приложение, выполните нужные действия в разделах, указанных ниже.
Настройка приложения
Добавьте репозиторий Google Maven и центральный репозиторий Maven в блок
dependencyResolutionManagementфайлаsettings.gradleверхнего уровня:dependencyResolutionManagement { repositories { google() mavenCentral() } }Добавьте зависимость сервисов Google Play для
play-services-code-scannerSDK в файл build.gradle модуля, который обычно называетсяapp/build.gradle:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }Вы можете настроить приложение так, чтобы сервисы Google Play автоматически скачивали модуль сканера на устройство при установке приложения из Google Play.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>Вы также можете проверить доступность модуля сканера и запросить его скачивание через ModuleInstallClient API сервисов Google Play.
Если вы не включите скачивание модуля при установке или не запросите явное скачивание, а модуль сканера ещё не установлен для другого варианта использования, сервисы Google Play скачают модуль сканера при первом использовании.
Отсканируйте код
Чтобы отсканировать штрихкод, выполните следующие действия:
При необходимости настройте сканер кодов.
Если вы знаете, какие форматы штрихкодов вам нужны, вы можете ускорить работу детектора, настроив его на распознавание только этих форматов. Например, чтобы распознавать только коды Aztec и QR-коды, создайте объект
GmsBarcodeScannerOptions, как показано в следующем примере: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();
По умолчанию автомасштабирование отключено. Чтобы включить его в версии 16.1.0 и более поздних, вызовите метод
enableAutoZoom(), как показано в следующем примере кода.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();
Получите экземпляр
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);
Запросите сканирование кода, позвонив по номеру
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 });
Обработайте полученный объект
Barcode.Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();

