Сканирование штрих-кода используется для считывания данных, закодированных в штрих-кодах.

Штрих-коды могут сохранять данные в виде печатных / цифровых изображений, которые могут быть легко прочитаны нашими приложениями. В случае 2D QR-кодов мы также можем кодировать структурированные данные, такие как контактная информация или учетные данные сети Wi-Fi.

API сканирования штрих-кода ML Kit работает на самом устройстве, что делает его быстрым и точным.

Серия Firebase ML Kit

В этой серии статей мы подробно рассмотрим различные API-интерфейсы ML Kit, которые он предлагает ...

Давайте рассмотрим API сканирования штрих-кода ML Kit и то, как мы можем интегрировать его в наши приложения.

Сканирование штрих-кода ML Kit

API сканирования штрих-кода ML Kit предоставляет следующие ключевые функции.

  • API может считывать практически все стандартные форматы штрих-кодов.
  • API по умолчанию сканирует все поддерживаемые форматы штрих-кодов. Однако вы можете ускорить этот процесс, явно указав форматы, которые вы ожидаете от него читать.
  • API также может анализировать структурированные данные, хранящиеся в двухмерных QR-кодах.
    Такие данные, как URL-адреса, контактная информация, адреса электронной почты, номера телефонов, информация о подключении Wi-Fi и т. Д.

Примечание. Firebase ML Kit находится в стадии бета-тестирования с января 1919 года.

Давайте код!

Шаг 1. Добавьте Firebase в свое приложение

Конечно! Вы можете добавить Firebase в свое приложение, выполнив действия, указанные здесь.

Шаг 2. Включите зависимость

Вам необходимо включить зависимость ML Kit в build.gradle файл уровня приложения.

dependencies {
  // ...
  implementation 'com.google.firebase:firebase-ml-vision:19.0.2'
}

Шаг 2.5: укажите модели машинного обучения (необязательно)

Для API на устройстве вы можете настроить приложение для автоматической загрузки моделей машинного обучения после его установки из Play Store. В противном случае модель будет загружена при первом запуске детектора на устройстве.

Чтобы включить эту функцию, вам необходимо указать свои модели в AndroidManifest.xml файле приложения.

<application ...>
  ...
  <meta-data
      android:name="com.google.firebase.ml.vision.DEPENDENCIES"
      android:value="barcode" />
  <!-- To use multiple models: android:value="barcode,model2" -->
</application>

Шаг 3: Получите! - изображение

ML Kit обеспечивает простой способ сканирования штрих-кодов различных типов изображений, таких как Bitmap, media.Image, ByteBuffer, byte[] или файл на устройстве. Вам просто нужно создать объект FirebaseVisionImage из вышеупомянутых типов изображений и передать его модели.

В моем примере приложения я использовал Bitmap изображение для создания FirebaseVisionImage объекта.

val image = FirebaseVisionImage.fromBitmap(bitmap)

Чтобы создать объект FirebaseVisionImage из других типов изображений, обратитесь к официальной документации.

Шаг 4: Установите! - модель

Теперь пора подготовить нашу модель сканирования штрих-кода.

val detector = FirebaseVision.getInstance().visionBarcodeDetector

Чтобы ускорить процесс сканирования штрих-кода, мы также можем настроить нашу модель на обнаружение только тех форматов штрих-кода, которые мы ожидаем от нее.

val options = FirebaseVisionBarcodeDetectorOptions.Builder()
        .setBarcodeFormats(
                FirebaseVisionBarcode.FORMAT_QR_CODE,
                FirebaseVisionBarcode.FORMAT_AZTEC
        )
        .build()
val detector = FirebaseVision.getInstance().getVisionBarcodeDetector(options)

Полный список форматов штрих-кодов, которые поддерживает ML Kit, можно найти в официальной документации.

Шаг 5: Гооо!

Наконец, мы можем передать наше изображение модели для сканирования штрих-кода.

detector.detectInImage(image)
        .addOnSuccessListener {
            // Task completed successfully
        }
        .addOnFailureListener {
            // Task failed with an exception
        }

Шаг 6. Извлеките информацию

Вуаля! Вот и все!
Если сканирование штрих-кода прошло успешно, прослушиватель успеха получит список из FirebaseVisionBarcode объектов. Каждый объект FirebaseVisionBarcode представляет собой обнаруженный штрих-код и содержит всю связанную с ним информацию.

Вы можете извлечь всю эту информацию вот так.

Посмотри!

Это то, чего вы можете достичь с помощью API сканирования штрих-кода ML Kit.

Вот исходный код вышеуказанного приложения…



Серия Firebase ML Kit

Не забудьте взглянуть на другие API ML Kit, посвященные этой серии статей.

Полный исходный код с другими API ML Kit можно найти здесь!



Спасибо за внимание! Поделитесь этой статьей, если вы нашли ее полезной.
Пожалуйста, хлопайте 👏, чтобы проявить немного любви :)

Давай подружимся в LinkedIn, GitHub, Facebook, Twitter.