В этом руководстве мы будем использовать библиотеку ZXing (Zebra Crossing) для сканирования штрих-кодов в приложении Android. Мы будем обращаться к ресурсам этой библиотеки с открытым исходным кодом в нашем приложении, получая и обрабатывая возвращенные результаты.
Поскольку мы используем библиотеку ZXing , нам не нужно беспокоиться о пользователях без установленного сканера штрих-кода, потому что предоставленные классы интеграции позаботятся об этом за нас. Импортируя классы интеграции ZXing в наше приложение, мы можем упростить сканирование пользователей и сосредоточить наши усилия на разработке на обработке результатов сканирования. В следующем выпуске серии мы разработаем приложение для сканирования книг, в котором мы будем использовать приложение, созданное в этом руководстве. Мы также добавим поддержку API Google Книг, чтобы мы могли отображать информацию о отсканированных книгах.
Премиум-вариант: QR-код и считыватель штрих-кодов
Если вы ищете ярлык, вы можете найти несколько готовых QR-кодов и считывателей штрих-кодов для приложений Android на Envato Market.
Настройка сканера Штрих-кода Atol1101plus
Например, QR-Code https://coderlessons.com/articles/mobilnaia-razrabotka-articles/android-sdk-sozdanie-skanera-shtrikh-koda» target=»_blank»]coderlessons.com[/mask_link]
Сканер QR
Интуитивный инструмент считывания и создания штрих-кодов
Сканер QR – полезное приложение, которое поможет узнать максимально полную и достоверную информацию об их происхождении. Для работы утилиты используется камера мобильного устройства, которую нужно навести на штрих-код, поместив его в границы специального окошка. Альтернативный вариант использования программы – получение информации по скану изображения.
Дополнительно программа предлагает пользователю функционал по созданию новых кодов, которыми можно поделиться с друзьями – ссылки на интернет ресурсы, сведения о контактах, географическом местоположении, событиях из календаря, данные доступа к Wi-Fi и так далее. Запросы на проверку штрих-кодов сохраняются в истории, откуда информация при необходимости экспортируется (csv, txt) или отправляется на хранение в «облако» Google Drive.
- инструмент для считывания QR-кодов распространенных форматов;
- информация о товаре из интернета и популярных онлайн-площадок;
- создание кодов и отправка заинтересованным пользователям;
- фонарик и изменение масштаба;
- импорт и экспорт данных.
При возникновении проблем и вопросов настоятельно советуем обратиться за помощью в соответствующую вкладку меню, которая поведает о поддерживаемых приложением кодах, даст четкие рекомендации по сканированию и поможет избежать самых распространенных ошибок. В качестве итога стоит сказать, что Сканер QR отлично справляется с заявленным функционалом и станет верным помощником, как в рабочих моментах, так и в частных случаях.
Источник: captain-droid.com
Подключение и настройка сканера штрихкода
Распознавание Barcode Android
В данной статье мы будем использовать ZXing (Zebra Crossing), чтобы расшифровать штрихкод в нашем Android приложении.
Используя ZXing, нам не нужно думать о том, что у пользователя нет сканера barcode, так как классы, предоставляемые библиотекой позаботятся об этом. Интегрируя ZXing в наше приложение мы можем предоставить пользователю более простую возможность сканировать шрихкоды, также это позволит нам сфокусироваться на разработке основной части приложения.
Создание нового проекта
Шаг 1
В Eclipse создайте новый Android проект. Введите имя приложения, проекта и название пакета.
Шаг 2
Откройте основной шаблон. Eclipse должен был создать стандартный шаблон. Внутри него замените существующий контент на кнопку
После кнопки добавим два текстовых поля, которые будут отображать результаты отсканированной информации.
Добавьте к кнопке текст. Откройте файл res/values/strings
Scan
Чтобы просканировать пользователь должен будет нажать на кнопку. Когда приложение получает результат распознавания, оно отобразит его в текстовых полях.
Интегрируем ZXing
Шаг 1
ZXing — библиотека с открытым исходным кодом, предоставляющая возможность распознавания штрихкодов на Android. Некоторые пользователи уже имеют установленное приложение ZXing, поэтому достаточно передать ему код и дождаться результатов. В данном приложении мы рассмотрим способ, вызывающий соответствующую функцию другого приложения. Если данное приложение отсутствует у пользователя, то будет выведено предложение скачать его.
В Eclipse добавим новый пакет в Ваш проект. Для этого кликнем правой кнопкой мыши по папке src и выберем «New»->«Package», а затем введем com.google.zxing.integration.android в качестве имени пакета.
Шаг 2
Eclipse предлагает несколько способов импортирования существующего кода в проект. В данной статье самым простым методом будет создание двух классов, содержащий код из ZXing. Кликните правой кнопкой мыши по Вашему проекту, выберете «New»->«Class» и введите «IntentIntegrator» в качестве названия класса. Остальные параметры Вы можете не изменять. Как только Вы создали класс, проделайте тоже самое, но назовите класс «IntentResult».
Скопируйте код из обоих классов библиотеки, а затем вставьте его в созданные классы.
Теперь Вы можете подключить файлы в основной класс
import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult;
Вернемся на минутку и также подключим следующие файлы. Обратите внимание, что Eclipse мог уже их подключить за Вас
import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;
Сканируем
Шаг 1
Давайте реализуем сканирование, когда пользователь нажимает на нашу кнопку. В главном файле приложения существует метод onCreate, который должен выглядеть примерно так
protected void onCreate(Bundle savedInstanceState)
Перед данной функцией создайте следующие переменные, которые будут хранить нашу кнопку и два текстовых поля, созданных в шаблоне
private Button scanBtn; private TextView formatTxt, contentTxt;
После существующего кода в onCreate добавьте строки, которые будут инициализировать переменные
scanBtn = (Button)findViewById(R.id.scan_button); formatTxt = (TextView)findViewById(R.id.scan_format); contentTxt = (TextView)findViewById(R.id.scan_content);
Теперь, добавим обработчик нажатия
scanBtn.setOnClickListener(this);
Расширим класс, чтобы объявить интерфейс OnClickListener
public class MainActivity extends Activity implements OnClickListener
Шаг 2
Теперь, мы можем реагировать на нажатие кнопки началом процесса сканирования. Добавим метод onClick
public void onClick(View v) < //respond to clicks >
Проверяем, была ли нажата именно кнопка сканирования
if(v.getId()==R.id.scan_button) < //scan >
Внутри блока с условием создадим экземпляр класса IntentIntegrator, который мы импортировали
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
Сейчас, давайте вызовем процедуру, которая начнет сканирование
scanIntegrator.initiateScan();
В данный момент должно начаться распознавание, но только, если у пользователя установлено необходимое приложение. Если его нет, то будет предложено начать загрузку. Результат сканирования будет возвращен приложению.
Обработка результатов сканирования
Шаг 1
Сканер будет запущен, когда нажата кнопка. Затем будет возвращен результат сканирования в метод onActivityResult. Добавим его в наш код
public void onActivityResult(int requestCode, int resultCode, Intent intent) < //retrieve scan result >
Внутри функции постараемся обработать результат
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
Шаг 2
Как и любые другие данные, полученные от другого приложения, было бы не плохо проверить, что результат не пуст. Продолжим мы только, если у нас есть правильный результат
if (scanningResult != null) < //we have a result >
Если мы не получили результат сканирования (например, пользователь отменил сканирование), то мы просто выведем сообщение
else
Вернемся в блок с условием, давайте разберемся с тем, что нам вернула библиотека. Объект Intent Result имеет метод, обеспечивающий получение результата сканирования. Получим результат сканирования, как строку
String scanContent = scanningResult.getContents();
Также, получим вид barcode
String scanFormat = scanningResult.getFormatName();
Шаг 3
Теперь, наше приложение имеет всю необходимую для отображения информацию. В нашей статье мы просто отобразим ее пользователю.
formatTxt.setText(«FORMAT: » + scanFormat); contentTxt.setText(«CONTENT: » + scanContent);
Запустите наше приложение на реальном устройстве вместо эмулятора, чтобы увидеть, как работает функционал распознавания штрихкодов. Попробуйте просканировать штрихкод с какой-нибудь книги или любого другого товара.
Результаты сканирования
Заключение
В этой статье мы научились сканировать barcode с помощью ZXing. В ваших собственных приложениях после извлечения информации скорее-всего Вы захотите обработать ее, например, если баркод содержит URL, то перейти на нее и т.д.
Источник: habr.com