В этом уроке научимся создавать приложение для чтения штрих-кодов и QR-кодов с использованием стандартной библиотеки Mobile Vision API.
Еще с выпуском Google Play services версии 7.8 разработчики добавили интерфейсы Mobile Vision, которые обеспечивают API для обнаружения штрих-кода. Они считывают и декодируют множество различных типов штрих-кодов, быстро, легко и локально.
Классы для обнаружения и анализа штрих-кодов доступны в пространстве имен com.google.android.gms.vision.barcode. Основной рабочей лошадкой является класс BarcodeDetector . Он выполняет обработку объектов Frame и возвращает массив штрих-кодов SparseArray
Тип Barcode представляет собой единый общепризнанный штрих-код и его значение. В случае 1D штрих-кодов, таких как коды UPC , это будет просто номер, который закодирован в штрих-коде. Его значение доступно в поле rawValue, в то время как тип штрих-кода (то есть его кодировку) можно найти в поле format.
Для 2D штрих-кодов, которые содержат структурированные данные, такие как QR-коды — в поле valueFormat устанавливается определенный тип значения, соответствующего полю данных. Так, например, если обнаружен тип URL , то поле valueFormat вернет константу URL, а объект Barcode.UrlBookmark будет содержать значение URL-адреса. Помимо URL-адресов, существует множество различных типов данных, которые QR-код может хранить. Например, почтовый адрес, дату и время события календаря, мероприятие в календаре, информацию контакта, номер телефона, местоположение на карте и другие данные, полный список которых приводится в документации. Ссылки на документацию .
Использование в приложении Mobile Vision API позволяет считывать штрих-коды в любом положении.
Важно отметить, что синтаксический разбор всех штрих-кодов выполняется локально, поэтому вам не нужно использовать соединение с сервером для чтения данных из кода. Например, при считывании линейного штрих-кода PDF-417 , который может вместить до 1 КБ текста, можно сразу же получить всю закодированную в нем информацию.
Итак, для разработки приложения нам понадобится:
Создаем новый проект в Android Studio. При создании выбираем шаблон Empty Activity.
На следующем шаге нужно убедиться, что ваше приложение может использовать службы Google Play, в состав которых входит Mobile Vision API. Для этого нужно обновить файл build.gradle вашего проекта.
В секции зависимостей должны быть такие строки. Обновите Gradle при необходимости.
Compile "com.android.support:appcompat-v7:25.0.0" compile "com.google.android.gms:play-services:9.8.0"
Службы Google Play часто обновляются, и чтобы получить последнюю версию, в Android Studio выберите инструменты > Android > SDK Manager.
Затем найдите строчку для сервисов Google Play и убедитесь, что у вас установлена версия 26 и выше. Если нет — установите компонент.
Теперь создадим пользовательский интерфейс.
В Android Studio выберите папку «res» и откройте ее вложенную папку «layout». Здесь вы увидите «activity_main.xml». Откройте его в редакторе макетов.
Вы можете видеть, что ваш макет содержит текстовое поле
По нажатию на кнопку будет происходить загрузка и обработка изображения штрих-кода, которое будет отображаться в ImageView. После завершения обработки штрих-кода информация, считанная из него, будет отображаться в TextView.
Обычно приложения для считывания штрих-кодов получают изображение с камеры устройства, или обрабатывают превью камеры. Для реализации этого потребуется достаточно много кода, и в конце урока я покажу пример реализации такого приложения. Чтобы упростить этот пример, мы обработаем готовое изображение qr-кода, которое уже присутствует в вашем приложении.
Вот пример изображения qr-кода, которое вы можете скачать отсюда.
Назовите его qr.png и добавьте в папку проекта res/drawable.Android Studio обеспечит доступ к файлу в качестве ресурса с идентификатором: R.drawable.qr
Теперь перейдем к написанию кода приложения.
В файле MainActivity.java в методе onCreate добавьте следующий код.
Button button = (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } });
Это настраивает обработчик событий (onClick), срабатывающий когда пользователь нажимает кнопку. Остальной код напишем в методе onClick.
Начнем с загрузки изображения штрих-кода. Сначала находим ImageView по идентификатору. Затем используется BitMapFactory для декодирования ресурса R.drawable.qr в растровое изображение. Полученное растровое изображение передаем ImageView.
ImageView myimageView = (ImageView)findViewById(R.id.imgview); Bitmap myBitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.qr); myimageView.setImageBitmap(myBitmap);
BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(getApplicationContext()) .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE) .build();
Вполне возможно, что первый раз наш детектор штрих-код сработает, когда служба Google Play еще не будет готова для обработки штрих-кодов. Поэтому мы должны проверить, что наш детектор работает, прежде чем использовать его. Если нет, нам придется ждать окончания загрузки или сообщить пользователям, что нужно найти подключение к Интернету или освободить место на устройстве. Прежде чем мы обратимся к текстовому полю, нужно объявить и найти его выше в методе onCreate.
TextView txtView = (TextView) findViewById(R.id.txtContent);
Теперь допишем метод вывода сообщения.
If (!barcodeDetector.isOperational()) { txtView.setText("Could not set up the detector!"); }
Теперь, когда наш детектор создан и мы знаем, что он работает, создаем кадр из растрового изображения и передаем его детектору. Тот возвращает нам массив штрих-кодов SparseArray.
Frame frame = new Frame.Builder().setBitmap(myBitmap).build();
SparseArray
Обратите внимание, что Mobile Vision API способен обнаруживать несколько штрих-кодов в одном кадре. В этом случае массив SparseArray
Обычно на этом этапе нужно пробежать по массиву SparseArray и обработать каждый штрих-код отдельно. Нужно предусмотреть возможность, что штрих-кодов может быть несколько, или ни одного. В нашем случае мы знаем, что у нас есть только 1 штрих-код, и можем прописать жесткий код для него. Для этого мы берем штрих-код, называемый «thisCode», который будет первым элементом в массиве. Затем присваиваем значение его поля rawValue текстовому полю textView — и все.
Barcode thisCode = barcodes.valueAt(0); txtView.setText(thisCode.rawValue);
Теперь все, что вам нужно сделать, это запустить приложение.
Запускать лучше на реальном устройстве. На эмуляторе работать не будет, потому что на эмуляторах по умолчанию отсутствует сервис Google Play.
Вот приложение запустилось на устройстве, жмем кнопку. Если вы используете изображение штрих-кода qr.png, вы увидите в текстовом поле данные, закодированные в QR-код — это адрес нашего сайта .
Это был простой пример приложения, демонстрирующий работу Mobile Vision API. Но полноценный сканер штрих-кодов должен получать изображение с камеры устройства, или обрабатывать превью камеры.
Разработчики подготовили пример такого приложения на Github, вы можете скачать его код по ссылке .
Клонируйте или скачайте проект, и откройте в Android Studio модуль barcode-reader.
При запуске приложения из этого проекта мы можем увидеть, как оно работает. Первоначально открывается стартовый экран, на котором можно включить автофокус или вспышку. Кнопка считывания штрих-кода запускает камеру. Приложение отслеживает появление штрих-кодов на превью и рисует рамки на обнаруженных штрих-кодах. При нажатии на область обнаруженного штрих-кода превью закрывается, передавая при этом данные обнаруженного штрих-кода в текстовое поле на стартовом экране. Подробнее смотрите в .
Это приложение также использует Mobile Vision API. Но при рассмотрении проекта в Android Studio можно увидеть, что кода здесь побольше, чем в нашем простом примере.
Приложение состоит из восьми классов. Три из них отвечают за интерфейс и работу с камерой.
Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.
Несколько лет назад неотъемлемой частью нашей жизни стали так называемые QR коды, чтобы их прочитать нужна специальная программа – сканер QR кодов. Их стали печатать на книгах, журналах, упаковках от печенья, бигбордах и вообще везде, где только есть хоть немного места.
Эти коды представляют собой картинку, на которой специальным образом расположены белые и черные квадраты. Собственно, если правильно прочитать расположение этих квадратов, можно расшифровать скрытый в этой картинке код. Для этого и существуют вышеупомянутые сканеры.
Рассмотрим, какие такие приложения для Андроид пользуются наибольшей популярностью, и какие из них наиболее функциональны.
Данная программа считается одной из лучших, если и вовсе не лучшей среди всех сканеров. Такие авторитетные издания, как PCWorld и Android Magazine поставили ей оценку 5 из 5. Среди пользователей она пользуется огромной популярностью (почти 100 млн. скачиваний на Google Play) еще и потому что она полностью бесплатная и в ней не предусмотрена реклама.
Приложение QR Droid прекрасно сканирует и расшифровывает любые QR коды.
Рис. №1. QR Droid
Другие особенности QR Droid такие:
Данный сканер работает с ISBN, EAN, UPC, матрицами данных и многими другими видами QR-кодов. В этой программе есть функция масштабирования, что очень удобно, когда коды очень маленькие и рассмотреть их достаточно непросто.
Для работы необходимо разрешить приложению работать с камерой. Скорость расшифровывания кода очень высокая, что достаточно приятно.
Не зря у приложения «Молния QR-сканер» самый высокий рейтинг (4.7) среди всех сканеров на Google Play.
Кстати, у первого и третьего сканеров в нашем рейтинге такая же оценка.
Другие особенности Молния QR-сканер:
Данное приложение славится тем, что в нем вообще нет рекламы! На сегодняшний день таких программ очень мало.
В принципе, все сканеры QR кодов имеют интуитивно понятный даже начинающему юзеру интерфейс, но QR Code Reader в этом отношении превзошел всех.
Сразу после того, как пользователь открывает приложение, перед ним появляется поле сканнера – достаточно навести камеру телефона или планшета на QR код и дотронуться до экрана. Все предельно просто и ясно.
Здесь не нужно что-то настраивать и вообще достаточно один раз коснуться экрана.
Особенности QR Code Reader:
Приложение «Сканер QR-кодов и штрих-кодов» разработано командой TeaCapps. Работает оно действительно хорошо, подключается к Wi-Fi одним нажатием. Таким же образом, быстро можно добавить контакты в адресную книгу и выполнить ряд других действий с информацией из QR-кодов.
Также Вы можете делиться абсолютно любыми данными с другими юзерами путем создания ссылки или другого кода.
Другие особенности Сканер QR-кодов и штрих-кодов такие:
Это разработка команды Geeks.Lab.2015. Разработано данное приложение специально для пользователей из России, Украина и других стран бывшего СССР.
Здесь есть огромная база штрих-кодов и QR кодов для товаров из всех этих государств. Конечно же, со стандартными кодами со ссылками программа тоже справляется очень хорошо.
Вообще из всех подобных программ у разработки Geeks.Lab.2015 самый высокий рейтинг на Google Play. Обычно оценки пользователей – лучший критерий выбора.
Другие особенности данной программы такие:
Из видео ниже Вы больше узнаете о QR кодах.
Сканер штрих кода для Андроид — это утилита для считывания штрих-кодов (QR-кодов) для смартфонов и планшетов под управлением ОС Android.
В сети огромное количество различных программ-сканеров штрих кодов. В связи с этим ниже будет представлено 5 самых лучших по рейтингу и отзыву программ. А вы уже решите сами какую скачать.
Все программы для считывания QR кодов из ТОП-10 магазина Google и на момент написания статьи бесплатные. Чей-то софт имеет рекламу, а у кого-то её очень много. Все подробности ниже. Первые два мобильных приложения имеют рейтинг от 4,7 и выше.
Скачать Сканер QR и штрих-кодов PRO:
Сканер QR и штрих-кодов PRO — компактная утилита для считывания штрих-кодов с помощью камеры устройства под управлением Android. Кроме того, позволяет самостоятельно создавать QR-коды для более комфортного обмена личной информацией.
Скачать Молния QR-сканер:
Сканеры полезны широкой аудитории пользователей, ведь применять их можно везде. Тем более приложения абсолютно бесплатны и в некоторых из них отсутствуют баннеры.
Скачать Бесплатно⚡QR Сканер/QR Код:
Возможности любого scanner для Андроид:
Скачать QR сканер штрих-кода:
Пользоваться достаточно легко и просто. Нужно просто скачать и запустить приложение на своем смартфоне, поместив его напротив заинтересовавшего штрих-кода. Подождать пока камера сфокусируется. Все остальное программа сделает самостоятельно, автоматически распознав и интерпретировав полученную графическую информацию.
Скачать Barcode Scanner для Android:
Есть возможность провести поиск распознанного штрих-кода в специальной базе или просто в интернете. Само собой, качество распознавания и достоверность полученной информации зависит не только от приложения, но и от используемой модели устройства, а также камеры и условий освещения сканируемого изображения. Имеется возможность создания собственных QR-кодов.
В утилитах присутствует функция автоматической подсветки при сканировании. Все они обладают достаточной «всеядностью» при считывании. К тому же прекрасно распознают как кириллицу, так и латиницу.
Поддержка линейных кодов: UPC (UPC-A, UPC-E), EAN (EAN-8, EAN-13), Code 39, 93 и 128. И двумерных кодов: QR Code, Data Matrix, PDF 417, Codabar, RSS-14, Aztec, ITF.
Также можно отметить 2 приложения с максимальным количеством загрузок 100.000.000:
С таким набором возможностей и характеристик мобильные приложения для смартфонов и планшетов заслуживают пристального внимания со стороны пользователей, желающих обзавестись качественным и бесплатным сканером штрих-кодов на своем устройстве.
Скачать сканер штрих кода для Андроид можно бесплатно APK файлом или в магазине Гугл. Большинство тестируемых приложений на русском языке и с минимальным количеством баннеров, а в некоторых её и вовсе нет.
В частности, для проведения инвентаризаций, создания штрих-кодов и так далее. Также большинство подобных приложений обладает функциями отправки отчётов по e-mail или уведомления о нехватке товаров на складах. Мы собрали лучшие приложения для сканирования штрих кодов для iOS и Android.
ТОП приложений для сканирования штрих-кодов.
Это простое приложение с несложной функциональностью. Но иногда это именно то, что нужно пользователям. Приложение распознаёт штрих-коды и хранит их в центральной базе данных, заносит в электронную таблицу именно то, что вы ищете.
ОС: iOS, Android
Особенности программы:
Стоимость:
С QuickMark вы можете не только сканировать, но и создавать штрих-коды и QR-коды. Кроссплатформенный сканер считывает несколько форматов штрих-кодов, что делает его одним из самых универсальных приложений для работы с кодами. Вы можете быстро и легко сохранять URL-адреса, названия элементов, местоположения и многое другое. В целом пользователи довольны работой утилиты, хотя некоторые отмечают неточное сканирование кодов.
ОС: Android, iOS, Windows.
Особенности программы:
Стоимость: бесплатно.
ScanLife – приложение-сканер штрих-кодов, позволяет сканировать QR-коды и штрих-коды на любом продукте и извлекать информацию, такую как данные о производителе и ингредиенты, цены и близлежащие места, где можно приобрести такие товары в режиме реального времени. Приложение ScanLife является частью более крупной платформы для компаний, которые хотят привлечь как можно больше пользователей мобильных устройств, включив QR-код в свою маркетинговую стратегию.
ОС: iOS, Android.
Особенности программы:
Стоимость: от $0 до $85 в месяц.
BarCloud является удалённой программой управления активами или инвентарём, доступной с любого устройства iOS или Android, а также из любого интернет-браузера. Благодаря автоматическому резервному копированию и возможности планирования пользовательских резервных копий ваши данные всегда в безопасности и доступны с любого девайса. Поддерживаются простой подсчёт инвентаря для сложных систем, таких как пакетная и серийная инвентаризация, поэтому активами с помощью системы регистрации BarCloud вы никогда не потеряете контроль над общими данными.
ОС: iOS, Android
Особенности программы:
Есть бесплатная версия. Стоимость премиум – от $25 до $125 в месяц.
NeoReader получил массу положительных отзывов пользователей iTunes и Google Play. Самая последняя намного лучше, чем предыдущие. Большинство пользователей утверждают, что софт сканирует практически любой код, в отличие от обычных приложений-сканеров, которые при попытке скана могут показать ошибку.
ОС: Android, iOS, Blackberry, Windows, Ovi.
Особенности программы:
Стоимость: бесплатно.
I-nigma можно скачать бесплатно, но для компенсации некоторых расходов на разработку и текущие исправления компания использует рекламу. Поэтому на панели управления могут быть показаны объявления, хотя на функциональность утилиты это никак не влияет. Софт расшифровывает vCards и MeCards, мгновенно сохраняя контактную информацию в списке контактов вашего телефона, открывает карты с помощью Geo-кодов и добавляет события в календарь. Конечно, утилита сканирует стандартные QR, DataMatrix и UPC/EAN.
ОС: iOS, Android, Blackberry, Windows.
Особенности:
Стоимость: бесплатно.
Lynkee – приложение для сканирования штрих-кодов на Андроид, Айфон и Виндовс, ориентированное, скорее, на потребителя, чем на управление запасами или активами. Это , способное сканировать различные штрих-коды 1D и 2D, включая DataMatrix, vCards и MECARD для хранения контактной информации, сравнения цен, поиска в истории сканирования и т. д. Утилита быстрая и точная.
ОС: Android, iOS, Windows.
Особенности:
Стоимость: бесплатно.
Приложение для штриховой проверки товаров, которое поддерживает штрих-коды 2D, Bidi и 1D (DataMatrix/QR/Ean 8 и 13). Пользователи могут бесплатно создавать свои собственные оптические штрих-коды и сканировать любой поддерживаемый формат для быстрого доступа к контенту, например, музыке, изображениям, видео, файлам, веб-сайтам и т. д. Встроенные функции совместного доступа позволяют вам делиться отсканированным контентом. Доступно на Андроид и Айфон.
ОС: iOS, Android, Lumia и Windows.
Особенности:
Стоимость: бесплатно.
Бесплатное приложение для чтения штрих-кодов Bee Tagg довольно сложное с точки зрения его функциональности сканирования, но оно не предлагает каких-либо всеобъемлющих встроенных возможностей базы данных. Тем не менее, вы можете копировать и вставлять информацию и коды для последующего использования.
ОС: iOS, Blackberry, Android, Windows, Samsung, Ovi.
Особенности программы:
Стоимость: бесплатно.
Kaywa утверждает, что это лучшее приложение для определения штрих-кодов, и пользователи, похоже, в большинстве случаев с этим согласны. Это приложение получило массу положительных отзывов как в iTunes, так и в Google Play. При этом данные хранятся во внутренней памяти вашего телефона. Это означает, что софт может повлиять на скорость работы девайса. Но это компенсируется за счёт простоты использования и скорости работы. Утилита доступна для Андроид и iPhone.
ОС: Android, iOS.
Особенности программы:
Стоимость: бесплатно.
Accusoft Barcode Scanner было создано для демонстрации функциональности Barcode Xpress for Mobile, SDK для штрих-кодов Accusoft для Android. Он предназначен для предприятий и разработчиков, которые хотят создать приложение для работы с штрих-кодами для устройств Android, интегрируя мощные возможности декодирования в настраиваемое приложение, разработанное специально для требований вашей компании. Для мгновенного декодирования расположите штрих-код в середине экрана. В зависимости от данных, хранящихся в нём, вы можете быть перенаправлены на веб-сайт, посмотреть информацию о продукте и т. д. Распознаёт множество 1D и 2D кодов.
Особенности:
Стоимость: бесплатно.
ixMAT использует программное обеспечение на базе Java, чтобы превратить ваше устройство в сканер штрих-кода. Это бесплатное приложение разработано для устройств Android, Blackberry, Windows Mobile и Java ME, но недоступно для iPhone или iPad. Поддерживает множество 1D и 2D кодов, автоматический анализ, без необходимости вводить тип штрих-кода.
Особенности программы:
Стоимость: бесплатно.
Приложение для сканирования штрих-кодов, разработанное Kiwi Objects, предназначено для повышения производительности, предоставляя вам контроль над проведением инвентаризации. Сканируйте объекты, упорядочивайте базу данных по категориям, типу или функциям (доступна любая иерархия).
Особенности программы:
Стоимость: бесплатно.
Scandit – это SDK, который позволяет предприятиям использовать сканирование штрих-кодов в своих мобильных приложениях. SDK похож на API для разработчиков, поскольку он позволяет компаниям создавать мобильные приложения для iOS или Android. Не совсем традиционное готовое мобильное приложение, Scandit – это оболочка для интеграции функционала сканеров штрих-кодов на мобильные гаджеты. Подойдёт для предприятий, вводящих в действие собственные мобильные приложения. Доступно как для Андроид, так и для iPhone.
ОС: iOS, Android, Symbian.
Особенности программы:
Есть бесплатная версия. Премиум-подписка обойдётся в $399 в месяц.
Посещение супермаркетов с такими приложениями станет гораздо веселее. При этом их можно использовать и в собственном бизнесе – для создания штрих-кодов или проведения инвентаризации. Конечно, за премиум-функции придётся заплатить, но чаще всего речь идёт о незначительной сумме, которая быстро себя окупит.
Жми "Нравится" и читай лучшие посты на Facebook
Описание:
С помощью приложения Вы сможете декодировать штрих код. Данный софт является полностью бесплатным. При сканировании, если QR-код содержит адрес сайта, то Вы автоматические попадёте на него. Приложение считает как QR-коды, так и Data Matrix.
Особенности программы:
- возможность сканирования штрих-кодов через камеру вашего устройства;
- возможность просмотра списка истории всех предыдущих сканирований;
- возможность создавать собственные QR коды;
- делитесь QR-кодами по средствам электронного общения.
Перейдём к настройкам . Настройки у приложения достаточно гибкие. При сканировании штрих-кодов, можно отключить распознавание линейные штрих кодов, Data Matrix, QR-кодов. Приложение позволяет включить/отключить звуковую и вибро сигнализацию. Также возможно включить автоматическую активацию фонарика, он активируется при недостаточном освещение в помещении.Программа поможет найти Вам информацию о просканированном товаре в интернете, сравнить цены и т. д.
Программа имеет достаточно простой нетривиальный интерфейс, в ней сможет разобраться даже домохозяйка. Хочу отметить - программа содержит довольно большое количество рекламы. Не забывайте, что для использования необходим доступ в интернет. Спасибо за внимание.