Как создать сканер для андроид

Как создать сканер для андроид

В народе довольно популярны приложения, умеющие сканировать штрих коды и QR-коды на различных вещах и продуктах и выдающие о них необходимую полезную информацию. В сегодняшнем уроке мы сделаем свое собственное приложение, способное работать с этими замысловатыми кодами. Но наше приложение не будет полностью работающим сканером, написанным лично нами, мы сделаем всего лишь приложение, которое будет использовать для анализа кодов известное на Play Market приложение под названием Barcode Scanner (бесплатное). Наше приложение будет с помощью намерения Intent запускать это упомянутое выше приложение, там будет происходить анализ необходимого кода, а результат анализа будет передаваться назад нашему приложению с помощью метода OnActivityResult, а затем высвечиваться уже в нашем приложении с помощью всплывающего Toast сообщения.

Для начала создаем новый проект, выбираем Blank Activity.

Первым делом создадим пользовательский интерфейс приложения. Он будет состоять из двух кнопок для запуска сканеров штрих кода и QR-кода. При нажатии на кнопки пользователю будет предложено загрузить приложение Barcode Scanner с маркета. Открываем файл activity_main.xml и добавляем туда следующие элементы:

Теперь переходим к работе с кодом. В принципе, ничего нового мы здесь не увидим, все довольно знакомое. Переход на другое приложение с помощью Intent, выполнение alert dialog для предложения пользователю перейти на Play Market для загрузки сканера, метод для обработки результатов программы сканера и получения данных с него OnActivityResult и их вывод в Toast сообщении.

Открываем файл MainActivity.java и добавляем в него следующий, довольно понятный код:

Вот и все, на этом наш сканер готов. Запускаем и проверяем:

Источник

Как создать приложение для считывания штрих-кода на андроид

[wpanchor этом уроке научимся создавать приложение для чтения штрих-кодов и 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 при необходимости.

Службы 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 добавьте следующий код.

Это настраивает обработчик событий (onClick), срабатывающий когда пользователь нажимает кнопку. Остальной код напишем в методе onClick.

Начнем с загрузки изображения штрих-кода. Сначала находим ImageView по идентификатору. Затем используется BitMapFactory для декодирования ресурса R.drawable.qr в растровое изображение. Полученное растровое изображение передаем ImageView.

Далее создаем экземпляр класса BarcodeDetector, используя Builder и настраиваем его на поиск QR-кодов и матрицы данных (есть много других типов штрих-кодов, которые он мог бы найти).

Вполне возможно, что первый раз наш детектор штрих-код сработает, когда служба Google Play еще не будет готова для обработки штрих-кодов. Поэтому мы должны проверить, что наш детектор работает, прежде чем использовать его. Если нет, нам придется ждать окончания загрузки или сообщить пользователям, что нужно найти подключение к Интернету или освободить место на устройстве. Прежде чем мы обратимся к текстовому полю, нужно объявить и найти его выше в методе onCreate.

Теперь допишем метод вывода сообщения.

Теперь, когда наш детектор создан и мы знаем, что он работает, создаем кадр из растрового изображения и передаем его детектору. Тот возвращает нам массив штрих-кодов SparseArray.

Обратите внимание, что Mobile Vision API способен обнаруживать несколько штрих-кодов в одном кадре. В этом случае массив SparseArray будет заполнен несколькими записями.

Обычно на этом этапе нужно пробежать по массиву SparseArray и обработать каждый штрих-код отдельно. Нужно предусмотреть возможность, что штрих-кодов может быть несколько, или ни одного. В нашем случае мы знаем, что у нас есть только 1 штрих-код, и можем прописать жесткий код для него. Для этого мы берем штрих-код, называемый «thisCode», который будет первым элементом в массиве. Затем присваиваем значение его поля rawValue текстовому полю textView — и все.

Теперь все, что вам нужно сделать, это запустить приложение.

Запускать лучше на реальном устройстве. На эмуляторе работать не будет, потому что на эмуляторах по умолчанию отсутствует сервис Google Play.

Вот приложение запустилось на устройстве, жмем кнопку. Если вы используете изображение штрих-кода qr.png, вы увидите в текстовом поле данные, закодированные в QR-код — это адрес нашего сайта fandroid.info.

Это был простой пример приложения, демонстрирующий работу Mobile Vision API. Но полноценный сканер штрих-кодов должен получать изображение с камеры устройства, или обрабатывать превью камеры.

Разработчики подготовили пример такого приложения на Github, вы можете скачать его код по ссылке.

Клонируйте или скачайте проект, и откройте в Android Studio модуль barcode-reader.

При запуске приложения из этого проекта мы можем увидеть, как оно работает. Первоначально открывается стартовый экран, на котором можно включить автофокус или вспышку. Кнопка считывания штрих-кода запускает камеру. Приложение отслеживает появление штрих-кодов на превью и рисует рамки на обнаруженных штрих-кодах. При нажатии на область обнаруженного штрих-кода превью закрывается, передавая при этом данные обнаруженного штрих-кода в текстовое поле на стартовом экране. Подробнее смотрите в видео.

Читайте также:  Reader для чтения андроид

Это приложение также использует Mobile Vision API. Но при рассмотрении проекта в Android Studio можно увидеть, что кода здесь побольше, чем в нашем простом примере.

Приложение состоит из восьми классов. Три из них отвечают за интерфейс и работу с камерой.

  • Класс CameraSource предоставляет управление камерой для получения предварительного просмотра.
  • Класс CameraSourcePreview отвечает за отображение превью на экране.
  • Класс GraphicOverlay отображает графические объекты поверх связанного предварительного просмотра камеры.
  • Класс MainActivity отображает стартовое окно с настройками и кнопкой запуска сканирования, и получает данные штрих-кода для размещения в TextView.
  • Класс BarcodeTrackerFactory реализует паттерн «Фабрика» и используется для создания трекеров штрих-кода — по одному для каждого штрих-кода.
  • Класс BarcodeGraphicTracker это трекер, который используется для обнаружения штрих-кодов на экране, и их отслеживания для наложения графики, а также удаления графики, когда штрих-код покидает зону видимости.
  • Класс BarcodeGraphic используется для отрисовки экземпляра накладываемого на штрих-код изображения с учетом его положения, размера и идентификатора.
  • Класс BarcodeCaptureActivity — это активити, которое запускается при нажатии кнопки считывания штрих-кода в стартовом окне приложения. Это активити отображает превью камеры и определяет штрих-коды на нем, выполнzет их считывание и наложение графических рамок на каждый штрих-код с помощью вышеперечисленных классов.

Я не буду в рамках этого урока углубляться в более подробное объяснение кода от разработчиков, а оставлю это вам в качестве домашнего задания. Тем более что код прекрасно документирован, каждый класс и метод содержит комментарии на английском языке. Читать и разбираться в таком коде очень полезно, особенно начинающему разработчику.

Источник

QR-код на телефоне Android: как сканировать и создать, лучшие приложения-сканнеры

Сейчас я расскажу вам как правильно сканировать QR-код на телефоне Android, какие для этого лучше использовать приложения и как создать свой QR-код быстро.

Данная статья подходит для всех брендов, выпускающих телефоны на Android 11/10/9/8: Samsung, HTC, Lenovo, LG, Sony, ZTE, Huawei, Meizu, Fly, Alcatel, Xiaomi, Nokia и прочие. Мы не несем ответственности за ваши действия.

Внимание! Вы можете задать свой вопрос специалисту в конце статьи.

Зачем нужно сканировать QR-коды?

В таких кодах зашифрованы полезные данные. Зачастую QR-коды применяются на выставках, в музеях, чтобы не ставить различные таблички с большим количеством информации. QR-коды позволяют всем пользователям при помощи телефона Андроид узнать всю необходимую информацию про экспонат.

Еще QR-коды являются прекрасным инструментарием при проведении акций. К примеру, в них шифруют коды, которые следует предъявить продавцам для получения подарка.

QR BARCODE SCANNER

Данное приложение для сканирования QR-кодов доступн в Плей Маркете. Инструкция по скачиванию и использованию утилиты:

    Переходим в Play Google.

Не знаешь как решить проблему в работе своего гаджета и нужен совет специалиста? На вопросы отвечает Алексей, мастер по ремонту смартфонов и планшетов в сервисном центре.Напиши мне »

Откроется домашняя страница софта. Жмем «Установить».

Ожидаем завершения скачивания софта.

После завершения инсталляционного процесса запускаем утилиту.

Интерфейс этого приложение делится на три части. Еще имеется значок настроек с видом шестеренки. Раздел «SCAN» состоит из четырех основных инструментариев:

  • Decode from Url. Осуществляется процесс по указанной ссылке.
  • Decode from File. Опция по выполнению декодирования из выбранного файла. Появляется возможность выполнить открытие скачанных QR-кодов ранее и считать их.
  • Manual Key-in. Информация о коде указывается вручную.
  • Scan Barcode. Искомый сканер таких кодов, функционирующий при помощи камеры.

Внизу окна расположись кнопки, которые не дают полезных функций пользователю. Можете вообще не использовать их.

Теперь перейдем к настройкам софта, которых довольно много. На экранах отображаются скриншоты самых различных конфигураций, давайте перейдем к рассмотрению наиболее интересных.

К примеру, на 1-м экране доступна возможность активировать звук программы или отключить его. Аналогичные действия там выполняются и с виброоткликом.

Есть возможность для задания рабочего режима, если утилита будет запускаться со сканера без открытия главного меню. Важным моментом является копирование в буфер информации в автоматическом режиме.

Когда потребуется запустить сканер для начала выполнения процесса сканирования, то софт будет запрашивать доступ к необходимым ресурсам системы. Разрешается такой доступ путем нажатия отмеченной на скриншоте ниже кнопки.

Читайте также:  Gps speedometer для android

Затем от пользователя потребуется рамку сканера навести таким образом, чтобы непосредственно на QR попадала отображенная горизонтальная полоска. Во время выполнения этого процесса руки не должны дрожать, т.к. при отсутствии нормальной резкости процесс сканирования будет неудачным.

Если вы запускаете QR BARCODE SCANNER в помещении, где отсутствует нормальная освещенность, то активируется подсветка. Когда этот код гаджетом будет распознан, отобразится информация, показанная ниже не скриншоте.

Там доступна миниатюра рассматриваемого кода, его дата создания, тип информации, формат. В окне будет отображено все содержимое.

В нашем примере в коде зашифрована ссылка на ресурс производителя, еще доступны кнопки «Share» (поделиться ссылкой) и «Go to Website» (переход на официальный портал).

Создание своего QR-кода в QR BARCODE SCANNER

В этой программе пользователи могут не только сканировать QR-коды, но и их создавать. Для создания подобного кода вам необходимо перейти в 3-ю вкладку, которая отмечена ниже на скриншоте. С помощью приложения можно зашифровать любую информацию:

  • Календарное событие.
  • Любой текст.
  • Местоположение.
  • Закладку.
  • Приложение.
  • E-mail.
  • Ссылку URL.
  • Телефонный номер.
  • Контакты телефонной книги.

Давайте выполним шифрование произвольного текста. Выбираем в интерфейсе утилиты соответствующий пункт.

В предложенное поле следует ввести фразу для шифрования. Жмем «Encode».

Получаем код. Еще можно изменить его цвет, для этого жмем на соответствующую кнопку.

В палитре выбираем подходящий оттенок.

Смотрим на полученный QR-код.

QR Droid Code Scanner

Приложение доступно для скачивания в Гугл Плей. На скриншоте ниже показано, какой вид имеет ярлык утилиты.

Отличие данного приложения от предыдущего состоит в наличии русскоязычного интерфейса. Для запуска софта жмем «Начало работы».

Для перехода в настройки программы жмем на кнопку в правом верхнем углу.

Главное меню состоит из шести кнопок, при нажатии на которые пользователь переходит в необходимую вкладку:

  • Советы, рекомендации.
  • Настройки.
  • Еще. Здесь можно использовать дополнительный функционал.
  • Поделиться.
  • История. Во вкладке располагаются все коды, которые сканировала утилита.
  • Сканер. Функция сканирования кодов.

Вначале следует выполнить активацию сканера в главном меню. Когда вы его наведете на искомый код, то жмите «Считать».

Теперь переходим к настройкам утилиты. В настройках есть возможность выполнить резервное копирование, настроить язык утилиты.

Пользователю будет предложено выбрать фирменный алгоритм для сканирования: ZXing или Zapper. Еще функционал позволяет активировать и выключить перекрытие, выполнить настройки автоматического действия, когда сканирование будет завершено. Доступна настройка демонстрации подсказок и опций буфера обмена.

Настройки позволяют подключить звуковое сопровождение, вибросигнал. Все выполненные действия заносятся в журнал. Имеется опция взаимодействия с Андроид Wear.

После этого можно выполнять экспорт, импорт резервной копии, устанавливать дату.

Утилита позволяет работать с такими опциями:

  • Демонстрация магазинов.
  • Парсинг URL.
  • Использование фронтальной камеры.
  • Выбор ориентации экрана.

Программа отличается широким функционалом при сканировании QR-кодов. Пользоваться софтов удобно, т.к. интерфейс русскоязычный и интуитивно понятный.

Сканирование QR-кода на Xiaomi

В некоторых гаджетах по умолчанию присутствует функция по сканированию QR-кодов. Производители эту опцию могут реализовать следующими способами:

  • Встроенная функция в камере девайса.
  • Отдельное приложение.

Если вы подобный софт на собственном гаджете найти не смогли, то просто активируйте на камере режим съемки и наведите ее на любой QR-код.

При отображении каких-либо данных о QR-коде, жмите на появившееся окно, чтобы увидеть подробности. На скриншоте ниже показано, как данная функция работает на девайсе Xiaomi Redmi 3S.

Когда вы нажмете на «Подробнее о QR-коде», то будет отображен итог этого сканирования. К примеру, если будет зашифрована ссылка на сайт, то программа сразу предложит перейти по этому URL.

Сервисы в интернете

Существуют специальные сайты в интернете, которые распознают QR-коды, например, https://www.qrrd.ru. Этот сервис отличается удобным интерфейсом и быстродействием.

Для сканирования кода на уже имеющейся картинке выполняем инструкцию:

    Переходим на сайт сервиса, жмем «Распознать QR код».

Теперь жмем «+Выберите файлы». Указываем картинку, находящуюся в памяти телефона.

На сервис картинка будет загружена автоматически. Затем отобразится результат сканирования.

Укажите модель устройства и какие у него признаки поломки. Постарайтесь подробно описать что, где , при каких условиях не работает или перестало работать.
Тогда мы сможем вам помочь.

Источник

Оцените статью