Скачать приложение сканер qr кодов. Как создать приложение для считывания штрих-кода на андроид
QR-код (Barcode) – разновидность кодирования, являющаяся дополнительным аналогом штрих-кода. Правда, кодировать таким образом можно всё что пожелаете, и не важно где данный код будет изображён. К примру, считывание данного кода можно осуществить как с обычного бумажного листочка, так и экранного изображения. Quick Response – это, иными словами, тот же штрих-код, только в двухмерном виде. Создателем этого новшества является Denso Wave. Сегодня мы узнаем, для чего предназначен Barcode и как правильно его считать.
Применение QR-кодов
Границы использования матричного кода простираются куда шире, чем область применения штрих-код. Таким кодированием можно обозначать не только группу товаров, но и интернет-ресурсы, изображение, города, программы и даже ссылку на соц. сеть. В общем, выделить таким шифрованием можно всё что пожелаете. Но для чего этого всё?Итак, узнаем, как работать с QR-кодом на Android системе. К примеру, вас заинтересовал некий товар, расположенный в магазины. Пользователь наводит на картинку с кодом свой смартфон, с предварительно загруженной утилитой для осуществления сканирования кода. Далее осуществится переход на сайт, закрепленный за производителем данного товара или услуги. Вы сможете узнать подробную информацию о товаре, а точнее: производителе, ассортименте, количестве и т.д.
Также система Quick Response великолепно зарекомендовала себя в сфере путешествий. Теперь вам не потребуется нанимать дорогостоящего экскурсовода. Наведите на QR-код камеру смартфона возле какого-либо произведения искусства и через несколько секунд вы узнаете о нём самую подробную информацию на сегодняшний день. Также широкое применение матричная кодировка нашла и в сфере рекламы. Так, изучая обзорную статью о какой-нибудь услуге, вы можете перейти на официальный сайт представителя, чтобы приобрести тот-же товар или услугу.
Cекретные коды для Android: Видео
Что нужно для чтения QR
Чтобы расшифровать нужный QR-код через Android смартфон, потребуется установить специальное приложение. Загружается оно из Google Play и не требует мощного железа. В общем счете, не столь важно, какую утилиту для снятия QR-кодов вы установите. Весь принцип работы у них идентичен, разница лишь в интерфейсе. Самыми известными считаются и , но подойдет и любая другая. Просто введите в строку поиска запрос «QR».Как создать QR самому
Неважно, для каких целей вам понадобилось матричное шифрование. Как мы говорили ранее, можно создать QR-код для собственной страницы соц. сети, других контактов, например, сделать распечатку на визитной карточке, чтобы кто угодно смог узнать о вас при помощи своего смартфона.Если считывание QR-кода занимает мало времени, то его регистрация займёт несколько минут. Для этого нужно воспользоваться услугами специального генератора. Проще всего создать код через сервис . Сложного в этом нет: выберите, то что требуется зашифровать и поэтапно следуйте инструкции. Когда сервис покажет вам изображение кода, вы сможете сохранить его для дальнейшей работы или скопировать его ссылку. Теперь этим кодом можно делиться со знакомыми и делать все что пожелаете.
В этом уроке научимся создавать приложение для чтения штрих-кодов и 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
- Смартфон на Android 4.2.2 или более поздней версии
- Последняя версия Android SDK, включая компонент SDK tools. Вы можете получить его с помощью Android SDK Manager в Android Studio.
- Google Play Services SDK. Вы можете получить его также в Android SDK Manager в Android Studio.
Создаем новый проект в 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 можно увидеть, что кода здесь побольше, чем в нашем простом примере.
Приложение состоит из восьми классов. Три из них отвечают за интерфейс и работу с камерой.
- Класс CameraSource предоставляет управление камерой для получения предварительного просмотра.
- Класс CameraSourcePreview отвечает за отображение превью на экране.
- Класс GraphicOverlay отображает графические объекты поверх связанного предварительного просмотра камеры.
- Класс MainActivity отображает стартовое окно с настройками и кнопкой запуска сканирования, и получает данные штрих-кода для размещения в TextView.
- Класс BarcodeTrackerFactory реализует паттерн «Фабрика» и используется для создания трекеров штрих-кода — по одному для каждого штрих-кода.
- Класс BarcodeGraphicTracker это трекер, который используется для обнаружения штрих-кодов на экране, и их отслеживания для наложения графики, а также удаления графики, когда штрих-код покидает зону видимости.
- Класс BarcodeGraphic используется для отрисовки экземпляра накладываемого на штрих-код изображения с учетом его положения, размера и идентификатора.
- Класс BarcodeCaptureActivity — это активити, которое запускается при нажатии кнопки считывания штрих-кода в стартовом окне приложения. Это активити отображает превью камеры и определяет штрих-коды на нем, выполнzет их считывание и наложение графических рамок на каждый штрих-код с помощью вышеперечисленных классов.
Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.
Прошло то время, когда проверить штрих коды стран производителей можно было только вручную. Сегодня любому владельцу мобильного телефона доступен сканер штрих кода, с помощью которого можно прямо на месте быстро и легко произвести его расшифровку и узнать детали о покупаемом товаре.
Вообще штрих код — это зашифрованная в виде полос информация о товаре, его стране и производителе, которая считывается специальным сканером. Расшифровать штрих код можно самостоятельно, зная, какая цифра за какой параметр отвечает.
Самые распространенные типы штрих-кодов — это тринадцатиразрядный европейский (EAN-13) и совместимый с ним 1двенадцатиразрядный UPC, который применяется в Северной Америке.
- Первые две цифры — код страны производителя;
- Следующие пять цифр — код изготовителя товара;
- Следующие пять — потребительские качества самого товара;
- Последняя цифра — контрольная, предназначена для сканера штрих кода
Иногда бывают исключения, когда коду страны соответствуют сразу три знака, а для производителя — четыре.
Самой главной является последняя, контрольная цифра. Именно по ней можно определить, настоящий товар или подделка. Рассчитывается она по следующей формуле:
- Складываем цифры, стоящие на четных местах
- Полученный результат умножаем на «3»
- Складываем цифры, стоящие на нечетных местах, кроме контрольной
- Складываем числа, полученные в пунктах 2 и 3
- Отбрасываем десятки
- Из числа «10» вычитаем полученное в пункте 5
Штрих коды стран производителей
Но прежде чем делать эти сложные расчеты, обязательно проверьте, соответствует ли штрих код страны производителя надписи на упаковке. Если код китайский, а написано «Сделано в Германии», то сами понимаете, это повод задуматься. Хотя тому могут быть и вполне объяснимые причины, например лицензия была получена в одной стране, а производство налажено в другой и т.д.
Приведу самые распространенные штрих-коды стран:
Сканер штрих кода
Как я уже говорил, тем у кого есть телефон вообще ничего этого делать не нужно. Просто установим специальную программку, которая называется (для Android) или Qrafter (для iPhone/iPad).
Эти приложения могут проверить не только штрих-коды товаров, но и также ставшие популярными в последнее время QR кодов, из которых также могут быть расшифрованы полезные данные. Кстати, потренироваться в их использовании можно прямо сейчас, попробовав отсканировать QR коды со ссылками на данные программы, приведенные чуть выше.
Работа приложений до безобразия проста — запускаем, наводим камеру на штрих код и ждем, пока она на нем сфокусируется и распознает. После чего будет предложено открыть ссылку на поиск в Гугле информации о данном товаре.
Теперь вы знаете, как узнать страну производителя и расшифровать штрих код при помощи сканера. Напоследок для Вас домашнее задание — узнайте при помощи одной из приведенных мной программ страну, фирму и товар по самому первому коду из данной статьи. Ответы пишите в комментариях, кто первый угадает, тому подарю приз! Вперед!
Проверка штрих кода онлайн
Для вашего удобства размещаю на странице форму онлайн проверки кодов. Можете узнать все о любом товаре прямо сейчас, «не отходя от кассы» — просто ввести полный номер с этикетки.
Ну и заодно вот вам генератор QR-кодов. С его помощью можно закодировать какую-либо информацию, например свой телефон или Email, а полученное изображение отправить другу или разместить на своей страничке или в блоге, чтобы эти данные не попали в спамерские базы.
Всем привет, уважаемые читатели и счастливые пользователи и обладателя мобильного гаджета на базе операционной системы Андроид. Сегодня я, как это обычно бывает, сделал подборку программ, на этот раз программ для Андроид, которые позволяют сканировать штрих коды и получать по этим кодам всю информацию о товаре
.
Очень неплохая программа для сканирования штрих кодов, которая позволяет вам, совершенно бесплатно, просканировать любой штрих код с целью узнать полную информацию по сканируемым продуктам. Из всех полезных функций хочется отметить следующие:
- Помимо сканирования обычных штрих кодов данное приложение может сканировать QR коды;
- Приложение можно загрузить и использовать совершенно бесплатно. Данный пункт, как мне кажется, для большого пласта пользователей является очень важным и решающим в выборе приложения.
Еще один неплохой сканер штрих кодов и QR кода . Из всех, несомненных, плюсов данной программы сканирования штрих кодов, я отмечу следующие:
- Помимо сканирования и распознавания штрих кодов и QR кодов, вы можете создавать свои собственные коды;
- Возможность делиться штрих кодами со своими друзьями и подписчиками в самых популярных социальных сетях;
- Приложение (сканер) “умеет” сохранять историю все ваших распознанных штрих кодов. Благодаря этому вы можете в любое время посмотреть все ваши коды.
Приложение для сканирования штрих кодов и QR кодов на английском языке. Т.к. данное приложение на английском языке оно не подойдет для большей части русскоязычной аудитории, но если вы владеете английским языком, то приложение вам понравится . Отмечу следующие возможности:
- Приложение позволяет находить самые дешевые цены на интересующие вас продукты. Иногда бывает очень полезно;
- Поиск продуктов по ключевым словам.
И замыкает нашу сегодняшнюю подборку еще одно приложение для сканирования штрих кодов под названием “сканер QR-кодов”. Из всех возможностей отмечу следующие:
- Возможность сканировать штрих коды как с внешней камеры, так и с сохраненного на мобильный гаджет изображения;
- Отправка штрих кодов в самые популярные социальные сети с помощью СМС.
Голосование
QR Code Reader позволяет считывать зашифрованные QR-коды, выводить на экран текст либо ссылки для последующего открытия в браузере. Интерфейс программы крайне прост. Достаточно навести камеру устройства на изображение, чтобы приложение смогло его считать. В условиях слабого освещения программа способна активировать фонарик.
Достоинства
QR Code Reader является одним из самых быстрых приложений, способных всего за несколько секунд считать код и расшифровать его. Если в тексте содержится ссылка на какой-либо интернет-ресурс, пользователь имеет возможность сразу перейти по ней. Для этого выделена специальная кнопка в меню. В случае если в коде есть в наличии только текст, пользователь может его прочитать и изучить. Среди других особенностей:
- поддерживаются любые форматы QR-кодов;
- можно включить фонарик, если вокруг слишком мало света для камеры;
- крайне малый размер клиента - всего несколько мегабайт.
С управлением сможет разобраться даже человек, слабо понимающий, как работает телефон. Достаточно просто поднести камеру поближе к изображению с QR-кодом, а затем запустить сканирование. При этом, если не хватает освещения, можно включить фонарь. Во время процесса желательно держать устройство ровно и не трясти его, иначе есть шанс, что сканирование завершится неудачно и код будет считан неправильно. В любом случае пользователю придется начинать все заново.
Настроек, как таковых, у программы практически нет, это сильно упрощает ее использование. Распространяется приложение бесплатно, что позволило сильно увеличить целевую аудиторию.
Заключение
У программы QR Code Reader очень неплохой уровень быстродействия. Интерфейс в короткое время откликается на любые команды пользователя, а сканирование занимает всего несколько секунд. Однако данный показатель зависит от мощности телефона, и процесс может растянуться на более длительный срок. Тем не менее программа все равно остается одной из лучших на рынке.