Перевод статьи Laurence Moroney, Developer Advocate, ссылка на оригинал
Распознавание штрих-кода
Классы для обнаружения и анализа штрих-кодов доступны в пространстве имен com.google.android.gms.vision.barcode. Класс BarcodeDetector является основной рабочей лошадкой обработки кадра объектов для возврата типов SparseArray<Barcode>. Тип штрих-кода представляет один штрих-код и его значение. В случае с 1 D штрих-кодами, как Коды UPC, это будет просто число, которое кодируется в штрих-код. Это доступно в свойстве rawValue, с определением типа кодирования, установленного в поле Формат.
Для 2D штрих-кодов, содержащих структурированные данные, такие как QR-коды поле valueFormat присваивается тип обнаруженного значения, и значение соответствующего поля данных. Так, например, если определяется тип URL , постоянный URL-адрес будет загружаться в valueFormat, и свойство URL будет содержать требуемое значение. Помимо URL, есть много различных типов данных, поддерживающих QR-код — можно посмотреть их в документации здесь. При использовании API, вы можете прочитать штрих-коды в любой ориентации. Они не обязательно могут быть прямо ориентированы вверх! Важно отметить, что разбор всех штрих-кодов осуществляется локально, что делает его очень быстрым. В некоторых случаях, например, при использовании двумерного штрих-кода PDF-417, вся необходимая информация может содержаться внутри штрих-кода, поэтому вам не нужен какой-либо дальнейший поиск. Вы можете узнать больше об использовании API, посмотрев пример на GitHub. Пример использует Mobile Vision API вместе с Camera preview to detect both faces and barcodes .
Типы поддерживаемых штрих-кодов
API поддерживает 1D и 2D штрих-коды, и ряд под-форматов.
Для 1D штрих-кодов:
AN-13
EAN-8
UPC-A
UPC-E
Code-39
Code-93
Code-128
ITF
Codabar
Для 2D штрих-кодов:
QR Code
Data Matrix
PDF 417
Подробнее
Легко создавать android-приложения, использующие распознавание штрих-кода с помощью Barcode Scanner API, и мы предоставили много ресурсов, которые позволят вам сделать это. Ищите их здесь: