Приложение для прочтения qr кода. Сканирование QR-кода на Android-девайсах
Сегодня кьюар коды знакомы многим людям. Их можно встретить на упаковках различных товаров, в журналах, рекламных проспектах и т. д. При этом они имеют некоторые отличия от простого штрих-кода, распознавание которого возможно только с помощью луча, расположенного строго в горизонтальной плоскости объекта. Чтобы расшифровать заложенную в QR-code информацию, достаточно установить на мобильный девайс специальное приложение - сканер штрих-кодов на Андроид.
QR-код (Quick Response) на русский язык можно перевести как «быстрый отклик». Он представляет собой базу данных, аналогичную штрих-коду. Основное различие между ними заключается в способе кодировки информации. Если в штриховом коде для этого используются полоски, то в QR - квадраты. С помощью специального софта можно зашифровать абсолютно любую информацию.
Например, организация может таким способом закодировать адрес своей страницы в интернете, разместив после этого готовый код на упаковке товара.
В результате пользователь сможет отсканировать его с помощью программы для считывания QR-кодов для Андроид и быстро перейти на веб-ресурс. Это значительно удобнее, чем самостоятельно вбивать все нужные символы в браузер.
Лучший софт
Для чтения кодов на телефон достаточно установить специальное приложение - QR-сканер для Андроид. Эта программа имеет небольшой размер, а для ее инсталляции не требуется много памяти.
Это один из самых популярных сканеров QR-кодов для Андроид, о чем говорит его количество загрузок с сервиса Google Play. Работать с программой очень просто, хотя некоторые пользователи говорят о не самом удобном интерфейсе. Чтобы сканировать, достаточно лишь запустить утилиту, а затем навести камеру смартфона на QR-код. Нажимать на кнопки или делать снимок не нужно.
Если в коде был зашифрован URL-адрес, то автоматически запустится браузер, после чего пользователь попадет на заданный веб-ресурс. Когда кодировке подвергся текст, его можно будет сразу увидеть. Среди преимуществ программы можно отметить:
- Возможность просматривать карту и историю последних сканирований.
- Переключение между основной и фронтальной камерой для работы.
- Автоматический переход на веб-ресурс, зашифрованный в коде, с помощью установленного по умолчанию браузера.
- Поддержка всех популярных типов штрих-кодов.
- Синхронизация истории сканирования через интернет с любыми устройствами.
- Если в телефон встроен фонарик, тогда его можно включить с помощью специальной кнопки для сканирования в условиях слабой освещенности.
Это приложение получило высшие оценки от нескольких авторитетных изданий и веб-ресурсов. Вся полученная штрихкодовым считывателем информация помещается в облако, что позволяет пользователю в любой момент просмотреть ее на другом гаджете. Приложение может работать не только с основной, но и с фронтальной камерой. Благодаря функциям вспышки и фокусировки работа с кодами значительно упрощается.
Специально для начинающих пользователей scanner имеет встроенную систему подсказок. Чтобы воспользоваться ими, достаточно кликнуть на вопросительный знак, расположенный в правой нижней части дисплея.
Кроме этого, утилита позволяет создавать собственные QR-коды. Приложение имеет много преимуществ, среди которых стоит отметить несколько основных:
- Есть доступ к истории.
- При считывании информации раздается приятный звуковой сигнал.
- Возможна синхронизация с платформой Android Wear.
- Можно выбрать один из двух механизмов работы с двухмерными кодами - ZXing либо Zapper.
Молния QR-сканер
Утилита способна справиться со всеми популярными видами кода, например, с UPC, ISBN, EAN и даже матрицами данных. Благодаря опции масштабирования работать с QR-кодами небольших размеров стало значительно удобнее. Также стоит отметить высокую скорость работы. О популярности приложения говорит самая высокая оценка пользователей в магазине Google среди аналогичных программ. Стоит обратить внимание еще на несколько возможностей утилиты:
- Для сканирования пользователю необязательно выравнивать гаджет, программа не допускает ошибок в работе.
- Интегрирован журнал, в котором доступна информация по всем предыдущим сканам.
- Можно включить фонарик, если он встроен в смартфон.
- Если пользователь обладает хорошими знаниями в программировании, он может получить бесплатный доступ к коду утилиты.
Code Reader
Этот QR-код сканер для Андроид позволяет выводить на дисплей зашифрованный текст либо открывать ссылки в браузере. Если работать с кодом приходится в условиях слабой освещенности, тогда можно включить фонарик прямо из программы. Эта утилита считается одной из самых быстрых. Все программы для считывания штрих-кодов для Андроид обладают довольно простым интерфейсом, но QR Code Reader смог обойти многих конкурентов.
Как только утилита будет запущена, на экране появится поле сканирования. После наведения камеры на код достаточно коснуться экрана, чтобы код был считан. Никаких настроек не предусмотрено, так как они просто не нужны. Следует заметить, что утилита отлично работает и без соединения с интернетом, но для некоторых приложений выход в сеть является обязательным условием для сканирования.
Программа для жителей СНГ
Именно такую цель преследовали сотрудники компании Geeks Lab 2015, разрабатывая свой QR-сканер штрих-кода. В приложение была интегрирована большая база кодов России, Беларуси, Украины и других государств постсоветского пространства. Программа отлично справляется со ссылками, которые могут содержаться в коде. После их расшифровки автоматически выполняется переход на веб-ресурс прямо в приложении.
Многие пользователи, использовавшие этот софт, отмечают хорошо продуманную организацию журнала сканирований.
Утилита Комбайн
Эта программа рассчитана на представителей бизнеса. Благодаря ее применению больше не придется приобретать специальное считывающее оборудование. Программа позволяет в короткие сроки собрать всю важную информацию о товарах, а также вести их точный учет. После сканирования кода вся информация может быть внесена в специальный софт, например, в 1С. Для этого достаточно в бухгалтерской программе отметить галочкой соответствующий пункт.
Пользователю не придется долго настраивать сканер, так как он работает в автоматическом режиме, но при этом возможность ручного ввода тоже присутствует. Разработчики постарались сделать систему поиска кодов максимально удобной. Отдельно стоит сказать о режимах работы утилиты:
В магазине Гугл можно найти большое количество софта, предназначенного для считывания кодов. Практически все программы поддерживают наиболее распространенные форматы, однако встречаются утилиты, рассчитанные на определенную категорию пользователей.
В конце 90-х годов прошлого столетия Японию захватила волна моды на штрих-коды. Информации,зашифрованной в обычном штрихе перестало хватать — так на свет появился его более продвинутый последователь — двумерный штрих-код или QR-код. Период его расцвета пришёл на 2000-е годы, когда его «лепили» везде где можно и нельзя.
Сейчас, конечно, мода на это значительно спала, но, тем не менее, используют его часто. Но если на телефонах и планшетах со сканированием и распознаванием КюАр кода проблем нет, то с компьютерами и ноутбуками все несколько сложнее.
Есть несколько способов сканировать QR код на компьютере чтобы прочитать его. Я расскажу о каждом из них, а Вы уже выберите тот, который будет удобнее использовать в Вашем случае.
1. QR код-сканер онлайн
Самый простой способ расшифровать QR на компьютере либо ноутбуке, не требующий установки программ, библиотек и т.п. Нужен лишь доступ в Интернет чтобы зайти на сайт decodeit.ru. Этот простой и в то же время функциональный ресурс позволяет делать на ПК все необходимые операции — прочитать и расшифровать КюАр-код, подсунув файл с его изображением.
Здесь Вы так же сможет создать свой двумерный штрих-код. Для этого необходимо всего лишь ввести ссылку или текст в поле «Создать QR код Онлайн» и нажать кнопку «Отправить». На экране появится изображение, которое надо будет сохранить на компьютер и переслать адресату.
2. Программа для чтения QR кодов
Ещё один отличный способ прочитать двумерный штрих-код на компьютере и распознать его — это бесплатная программа CodeTwo QR Code Desktop Reader. Единственное ограничение — она способна прочитать не все коды — есть и те, которые ей не под силу.
Утилита требует установки в систему, после чего автоматически запустится.
Далее надо открыть файл с с QR-кодом или зайти на страничку в Интернете, откуда его надо сканировать. Снова переходим к приложению и нажимаем на кнопку «From screen».Теперь надо мышью выделить КюАр рамкой, после чего отпустить кнопку. Теперь программа сама расшифрует его,прочитает его и выдаст результат.
В этом уроке научимся создавать приложение для чтения штрих-кодов и 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ет их считывание и наложение графических рамок на каждый штрих-код с помощью вышеперечисленных классов.
Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.
QR-код — это штрих-код, разработанный и представленный японской компанией Denso-Wave в далеком 1994 году. QR-коды в последнее время стали популярны и в нашей стране. С помощью штрих-кода можно зашифровать достаточно много информации, например, какой-нибудь адрес или веб-ссылку. Для того, чтобы считать информацию, достаточно иметь под рукой смартфон или планшет с камерой. Сегодня мы покажем вам, как считывать такого рода коды на Android-устройствах.
Первым делом вам необходимо будет скачать сканер для штрих-кода. Каким из них вы будете пользоваться, решать только вам — их в Google Play Маркет очень много. Просто наберите в поиске словосочетание «qr-код» (без кавычек) и выбирайте на здоровье. Мы воспользовались QR Code Reader. Кстати, вполне возможно, что в вашей прошивке уже есть сканер QR-кодов.
Чтобы его считать, нам нужно запустить скачанное приложение и запустить его. После запуска вы увидите изображение с камеры — не пугайтесь, так и положено. При наведении камеры на QR-код приложение автоматически его считает, то есть вам не нужно нажимать на дополнительные кнопки. При этом вы сразу увидите скрытое в коде описание.
Собственно, на этом все. Устанавливайте приложение и сканируйте QR-коды, что вам встречаются. Возможно, в них вы найдете что-то интересное.
Удобная бесплатная программа для считывания и создания QR-кодов (штрихкодов). Приложение позволяет считывать информацию QR-кода из графического файла, с экрана монитора и с веб-камеры.
Программа CodeTwo QR Code Desktop Reader это очень удобное приложение, которое позволит Вам без использования специальных устройств получить всю зашифрованную информацию в штрихкоде формата QR-code.
Данный стандарт хранения данных давно завоевал популярность в различных сферах промышленности, торговли, транспорта и многих других. Он представляет собой матричный код (двумерный штрихкод) зашифрованный в графическом изображении небольшого размера. В такой картинке может содержаться текстовая информация достаточно существенного объема.
Для загрузки в программу изображения с QR-кодом использовать различные типы источников и методы.
CodeTwo QR Code Desktop Reader поддерживает считывание QR-кода:
С экрана (From Screen)
Этот инструмент позволяет выделить с помощью курсора мыши определенную рабочую область экрана с изображением, в котором содержится QR-code. Например, если Вам необходимо раскодировать информацию со штрихкода размещенного на веб-странице.
С Веб-камеры (From webcam)
Для этого необходимо сфокусировать подключенную к компьютеру камеру на графическом изображении штрихкода.
Из файла (From file)
С помощью проводника Windows указать на нужный файл цифрового изображения с зашифрованной QR-информацией. Поддерживаются BMP, JPG, TIFF, GIF и PNG форматы.
Из буфера обмена (From clipboard)
Программа распознает QR-данные из файла, который в данный момент находиться в буфере обмена.
QR-код генератор
Программа CodeTwo QR Code Desktop Reader является не только инструментом для считывания QR-code, а также способна сама генерировать зашифрованный графический штрихкод из Ваших данных. Для этого нужно воспользоваться соответствующим пунктом главного меню приложения "Режим Генератор (Generator mode on)". В окне для ввода текста "QR code text" набрать необходимую информацию и сохранить получившееся изображение в один из форматов графических файлов "Save as".
Максимальный объем современного стандарта кодирования QR-code вмещает:
- Цифр 7089
- Латинских символов 4296
- Кириллица
- В Windows-1251 кодировке 2953 символа
- В UTF-8 кодировке 1450 символов