Скачать приложение сканирования qr кода. Программа для чтения и создания QR кодов
Двухмерные QR коды (англ. quick response - быстрый отклик) были разработаны в Японии компанией «Denso-Wave» в 1994 году для нужд автомобильной промышленности. Со временем QR-коды получили широкое распространение в самых различных областях благодаря эффективному способу хранения закодированной информации. В качестве самой информации может выступать что угодно: ссылки на сайты, телефонные номера, адреса электронной почты, тексты в несколько тысяч знаков.
Для того, чтобы расшифровать информацию, заложенную в QR-код необходимо его отсканировать и прочитать. С данной задачей успешно справляется большинство современных смартфонов.
Как сканировать QR код
Для сканирования QR кода используются встроенные камеры мобильных устройств. Специальное приложение распознает QR-коды, получает их детальное отображение и расшифровывает заложенную в них информацию.
Рассмотрим решение задачи по сканированию QR-кодов на примере приложений для наиболее популярных платформ смартфонов: iOS для iPhone и Android для мобильных устройств различных производителей.
Приложение для сканирования QR кодов на iPhone
Чтобы наделить iPhone возможностями для работы с QR кодами и производить их сканирование выполните следующие шаги.
Пример сканирования QR кодов на Android
На платформе Android работа с QR кодами ничем принципиально не отличает, от аналогичных действий на iOS.
Разумеется, что рассмотренное нами приложение далеко не единственная программа для сканирования QR кодов на мобильных устройствах. Вы можете сами попробовать другие приложениях и найти среди них наиболее удобный вариант.
Также существуют программы для чтения QR кодов и для персональных компьютеров. Они также могут успешно использоваться для сканирования единичных кодов. Если же вам необходимо работать с большим количеством кодов, то здесь имеет смысл уже задуматься о приобретении специального ручного сканера штрих-кодов, который подключается к компьютеру через USB-порт и обладает значительно лучшим быстродействием.
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-кодами. Немалой популярностью пользуются они и сегодня, хотя и не в такой мере, как в странах Азии, где они получили особенно широкое распространение.
Так что же такое QR-коды, зачем они нужны и как их читать? Как и его всем хорошо знакомый линейный штрих-код, QR-код представляет собой зашифрованную текстовую информацию. Впрочем, термин «зашифрованную» не совсем уместен, QR-код не является в полном смысле шифром, скорее это графическое представление текстовых данных, которое получило признание благодаря сжатию и компактности. Как-никак, QR-код может содержать до 4296 алфавитно-цифровых символов и всё это в небольшом графическом объекте со стороной в несколько сантиметров.
Как происходит сканирование QR-кода на Андроиде
Если не брать в расчет мобильные телефоны с камерой и установленным сканером QR-кодов, для чтения последних не нужно никакого специального дополнительного оборудования. Ниже мы посмотрим, как прочитать QR-код с помощью смартфона под управлением Android, а сейчас позвольте пару слов о том, как, собственно, всё это работает. Распознание QR-кодов выполняется примерно по следующей схеме:
- Передача изображения приложению;
- Распознавание черных и белых областей;
- Определение версии кода;
- Получение и чтение системной информации, коррекция ошибок;
- Получение заголовка данных и применение к нему маски;
- Преобразование графических точек в двоичный код;
- Чтение двоичного кода и преобразование его в алфавитно-цифровую последовательность;
- Вывод данных на экран.
Как видите, QR-код представляет собой набор двоичных данных, так что прочитать его можно даже не имея телефона, главное знать алгоритм, по которому построен код. Этих самых алгоритмов существует несколько и большинство из них заложены в популярные приложения для сканирования QR-кодов на Андроид.
Лучшие приложения для считывания QR-кодов
Хоть мы и употребили слово «лучшие», в действительности, наши предпочтения являются весьма субъективными по той причине, что всем не угодишь, и программа, приглянувшаяся одному пользователю, другому может показаться никуда не годной.
Итак, как отсканировать QR-код на Андроид? Начнем с того, что некоторые производители мобильных устройств встраивают в приложение «Камера» функцию сканирование QR-кодов. Включите вашу камеру, зайдите в настройки и посмотрите, есть ли в списке режимов съемки «Сканер» (ярлык будет иметь характерный вид). Если да, чудесно, тапните по нему и наведите камеру на QR-код. Встроенный модуль тут же прочитает данные и выведет их на дисплей. Элементарно, как дважды два.
Могут быть также доступны иные опции, например, передача данных в другое приложение. Если в настройках камеры вы ничего подобного не нашли, используйте для считывания QR-кодов на Андроид сторонние программы.
Популярное приложение для расшифровки кодов QR. Считается наиболее безопасным, поскольку кроме камеры не требует доступ к прочим компонентам, функциям и данным устройства. Приложение имеет удобный интерфейс, читает коды товаров, SMS и Email-сообщений, телефонной книги, геодатчиков, ссылок, отличается хорошей скоростью считывания, поддерживает ведение истории сканирования, в нём имеются автофокус и функция подсветки, активирующаяся при сканировании в плохих условиях видимости.
Дополнительно поддерживается расшифровка линейных штрих-кодов, массовое сканирование. Принцип работы приложения прост – запустили, навели камеру на сканируемый объект, получили расшифрованные данные.
Добротный сканер QR-кодов для Андроид, отличающийся продвинутым функционалом. Приложением поддерживается сканирование разных типов кодов с камеры, открытых в галерее или браузере изображений, ведение истории, создание QR-кодов и обмен ими, создание XQR-кодов для объемных QR-кодов, использование фонарика и вспышки в условиях плохого освещения. Из дополнительных возможностей следует отметить автооткрытие веб-страниц при получении ссылки, сохранение штрих-кодов, использование виджетов. Принцип работы приложения тот же, что и у Молния QR-сканер.
Весьма неплохая программа, позволяющая быстро и качественно сканировать QR-код на телефоне. QR Code Reader работает с большинством типов QR и штрих-кодов, умеет читать ISBN, тексты, URL-адреса, данные календаря, адресной книги контактов, SMS, сведения о местоположении, не нуждается в подключении к интернету. Приложение может похвастать приятным и удобным пользовательским интерфейсом в духе минимализма. Из дополнительных функций можно отметить ведение истории сканирований, использование фонарика в условиях плохой видимости.
Неплохое приложение от разработчика TeaCapps, позволяет сканировать штрих- и QR-коды на Андроид, отличается простотой, удобством и неплохим функционалом. Работает программа со всеми распространенными форматами кодов, включая Data Matrix, Aztec, UPC, EAN и Code 39, поддерживает чтение данных доступа к беспроводным сетям, сведения о местоположении, URL, контакты, события календаря, E-mail, SMS и MATMSG, данные MeCard, .
Среди функций приложения – создание и обмен QR-кодами, автоматическое выполнение релевантных действий, например, переход по ссылке, работа с изображениями без использования камеры, ведение истории и ее экспорт в лог CSV, защита от вредоносных ссылок, масштабирование и использование фонарика для подсветки.
Завершает наш список приложение «QR код - сканер штрих кодов» от разработчика Best App – Top Droid Team. Примечательна эта программа прежде всего высокой скоростью считывания – коды в ней расшифровываются практически мгновенно, стоит только навести камеру. Инструмент работает с большинством типов данных, содержит встроенный генератор QR-кодов, поддерживает обмен и совместное использование кодов, выполнение релевантных действий при получении соответствующего содержимого, сохранение истории сканирований и поиск по ней. Для сканирования и распознания QR и штрих-кода подключения к интернету программа не требует.
Заключение
Ну вот мы и разобрались с тем, как считать QR-код на Android. Как видите, ничего сложного, распознание выполняется в автоматическом режиме, достаточно просто запустить программу-сканер и навести на код камеру. Но если все эти программы так хороши, откуда берутся негативные к ним отзывы в Google Play? Причина проста, как везде и во всём, есть в работе с 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ет их считывание и наложение графических рамок на каждый штрих-код с помощью вышеперечисленных классов.
Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.
Сканировать QR-коды на смартфонах с Android проще чем делать фото. Все что нужно это:
- Смартфон или планшет с камерой;
- Интернет.
Я объясню все максимально просто и проведу практическое занятие. Прямо здесь не отходя от статьи. По такой же инструкции можно сканировать и штрих-коды.
“Интерфейс моего смартфона может отличаться от вашего из-за другой темы и версии Android. Отличия не влияют на процесс установки и использования сканера QR-кода”
Для начала нужен сканер QR кодов. Я нашел самый простой. На нем меньше назойливой рекламы и он сканирует - то, что нужно. Установить его - очень просто. Использовать - еще проще.
- Для начала заходим в Google Play Market. И пишем в подчеркнутой красным строке: “qr code scanner”, а лучше “smart qr scanner and generator”. Нажимаем на иконку поиска или просто выпавшее предложение, которое нам подходит.
Кроме того у нас вы можете скачать другое отличное приложение для сканирования –
Как сканировать код с сохраненной картинки?
Распознать QR-код с картинки можно и в сети интернет с помощью специальных веб-сайтов. Я выбрал qrrd.ru, потому что это единственный сайт, который у меня загрузился менее чем за 10 секунд и имел более-менее приятный глазу интерфейс.
Как им пользоваться? Сначала заходим на сайт: qrrd.ru или сразу на qrrd.ru/read. Видим следующее:
Зеленым обведено меню сайта, в котором указано все, чем он может вам помочь. В нашем случае выбираем “Распознать QR код”.
Открывается следующая страница с большой кнопкой “+Выберите файлы”. На нее и нажимаем. После этого, снизу появляются варианты как “выбрать файлы”. Тут вы можете или сразу сделать фотографию и отправить. Или же нажать на документы и выбрать фотографию, которая уже есть на телефоне. Я пошел по последнему пути.
Здесь я выбрал вкладку с картинками, нажал на папку где хранятся картинки на моем телефоне и нажал на изображение с QR-кодом, то самое которое уже раньше было здесь в статье.
Дальше уже дело за сайтом. Он автоматически загружает себе фотографию или картинку, а потом сразу распознает и показывает результат.
Готово!.
Зачем мне вообще сканировать QR-коды?
В них может находиться полезная информация. Вероятность этого низка, но она может там быть. К тому же, QR-коды часто используются в музеях, чтобы не ставить огромные таблички с кучей информации, а просто использоваться небольшой QR-код и дать каждому возможность отойти в сторону и почитать о экспонате в своем телефоне. Все просто и удобно. Именно для этого компания Denso Wave их и изобрела.
QR-код - это отличный инструмент для акций. Например, в нем может быть зашифрован код, который нужно показать продавцу, чтобы получить скидку. Применений огромное количество. Пользуйтесь!