Android - сканирование штрих-кода, варианты? ZXING?
-
25-09-2019 - |
Вопрос
Я хочу создать приложение для Android, который сможет просматривать штрих-коды, получить информацию, содержащуюся в штрих-коде, а затем иметь возможность каким-то образом использовать эту информацию.
Я понятия не имею, как создать сканер штрих-кода, чтобы я пошел гуглинг, и кажется, ZXing - это самый часто используемый способ реализации сканера штрих-кода в приложении.
Некоторые ссылки:
http://code.google.com/p/zxing/
http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/
Использование ZXING для создания Android CARCode сканирования приложения
Однако образцы, которые я обнаружил, что привлек внимание ZXING, чтобы подсказать пользователю перейти на рынок и установить сканер ZXING Scarcode, чтобы мое приложение мог позвонить сканеру штрих-кода, когда его необходимо, и сканер штрих-кода вернет информацию в мое приложение.
Хотя это будет хорошая отправная точка для меня, мне было интересно, есть ли другие варианты, которые позволили бы мне иметь сканер штрих-кода, встроенный в мою собственное приложение, не предлагая пользователю загружать вторичное приложение?
Решение
Разработчик здесь. Я думаю, что вы хотите просто интегрироваться через намерение в конце концов. Вы получаете улучшения, исправления ошибок и обрабатываемые на платформу обходные пути бесплатно. Это гораздо меньше кода тоже. Но я понимаю, что вы просите альтернативы.
Вы, вероятно, хотите распределить сканер штрих-кода (источник которого находится в Android / в проекте) и положите все, что вам не нужно. Это означает оставить только о com.google.zxing.client.android
а также com.google.zxing.client.android.camera
пакеты. Основное декодирование в DecodeThread
, Но другой код в этих пакетах реализует небольшой танец обратного вызова, который делает непрерывное сканирование и получает обычное сканирование пользовательского интерфейса.
Если вы встраиваете код, вам нужно следовать условиям Лицензия Apache.
Другие советы
Загрузите и продлить приложение ZXING "BARCode Scanner", добавив свой собственный код. Это под лицензией Apache 2.0.
Проверьте новые услуги Google Play 7.8 API, который включает отслеживание штрих-кода: https://developers.google.com/vision/Barcodes-overView.
Я бы предложил вам использовать ZXING через Intents и Redirect на страницу Android Market ("market://details?id=com.google.zxing.client.android"
) если это не там (ловит ActivityNotFoundException
). Наимение отлично подходит для взаимодействия между приложениями, как это.
У меня это работает с этим:
repositories { mavenCentral()
maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" }
}
compile 'com.google.zxing:core:3.2.1'
compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
Я рекомендую использовать интинтегратор
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.forSupportFragment(this).initiateScan();
Запрос кодона возвращается с
IntentIntegrator.REQUEST_CODE
Нет необходимости устанавливать отдельный сканер
Я рекомендую использовать сканирование Google Barcode. Это довольно отзывчиво. Это называется Google Mobile Vision.
API сканера штрих-кода определяет штрих-коды в режиме реального времени в любой ориентации. Вы также можете обнаружить и разбирать несколько штрих-кодов в разных форматах одновременно.
https://developers.google.com/vision/
https://codelabs.developers.google.com/codelabs/bar-codes/#0.