Создание сканера штрих-кода с использованием Firebase MLKit

Эта история является третьей в серии MLKit для мобильных разработчиков.
Если вы не совсем в курсе, можете начать здесь:



Пит-стопы серии

Следуя предыдущим статьям об API Маркировка изображений и Распознавание текста, в этом посте я расскажу о третьем API, то есть API сканера штрих-кода, и о том, как вы можете создать на его основе мощные функции в своем приложении.

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

Прежде чем мы начнем, вот несколько скриншотов из приложения, которые демонстрируют конечный результат:

В отличие от двух API, которые мы рассмотрели ранее, облачного варианта этого API нет, хотя вся обработка происходит на самом устройстве.

Следовательно, этот API является бесплатным!
Да, вы меня правильно поняли, использование этого API является бесплатным, поскольку вся обработка данных происходит на самом устройстве.

Еще одна особенность этого API заключается в том, что он также работает, когда ваше устройство не подключено к Интернету! #buildingForTheNextBillions

Код для примера приложения, приведенного выше, можно найти здесь, не стесняйтесь его разветвлять и следовать:



Итак, без промедления, приступим!

  • Настройте Firebase в своем проекте и добавьте зависимость видения
    Это очень просто, просто настройте firebase в своем проекте. Вы можете найти хорошее руководство здесь.
    Чтобы использовать этот API, вам также необходимо добавить следующие зависимости.
  • Реализация функций камеры в вашем приложении
    Vision API требует изображения для извлечения данных, поэтому либо создайте приложение, которое позволяет загружать изображения из галереи, либо создайте приложение, использующее камеру API-интерфейсы, позволяющие щелкнуть изображение и использовать его вместо этого.
    Я обнаружил, что эта библиотека довольно удобна и проста в использовании вместо API-интерфейсов камеры фреймворка, так что в конечном итоге я использую именно ее.
  • Используйте растровое изображение для вызова API
    . Если вы использовали указанную выше библиотеку, она напрямую предоставляет вам растровое изображение захваченного изображения, которое вы можете использовать для вызова API.

В приведенном выше фрагменте кода мы сначала создаем FirebaseVisionImage из растрового изображения.

После этого мы создаем экземпляр FirebaseVisionBarcodeDetector, который используется для распознавания штрих-кодов в предоставленном изображении.

Наконец, мы передаем Image методу detectInImage () и позволяем детектору обнаруживать текст на изображении.

У нас есть успешный и неудачный обратный вызов, который содержит список объектов FirebaseVisionBarcode, содержащий все обнаруженные штрих-коды и исключение соответственно.

Кроме того, мы можем просмотреть приведенный выше список и получить информацию, содержащуюся в каждом обнаруженном штрих-коде.

Этот API также может определять тип данных, содержащихся в отсканированном штрих-коде, который вы можете использовать для обработки каждого типа штрих-кода по-разному.

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

Все доступные типы указаны в интерфейсе BarCodeValueType.

Если вы хотите поэкспериментировать с приложением, показанным на снимках экрана, вы можете создать его из репозитория GitHub, на который я ссылался выше, и оно должно хорошо работать после добавления в ваш проект Firebase.

И на этом все, я собираюсь изучить оставшиеся API MLKit, так что ждите статей по ним достаточно скоро!

Спасибо за внимание! Если вам понравилась эта история, пожалуйста, нажмите 👏 кнопку и поделитесь, чтобы помочь другим найти ее! Не стесняйтесь оставлять комментарии 💬 ниже.
Хотите оставить отзыв? Давайте подключимся в Твиттере.