Android - Сканирование штрих-кодов, параметры? ZXing?
Я хочу создать приложение для Android, которое сможет сканировать штрих-коды, получать информацию, содержащуюся в штрих-коде, и затем иметь возможность использовать эту информацию в некотором роде.
Я понятия не имею, как создать сканер штрих-кода, поэтому я пошел в Google и, похоже, Zxing является наиболее часто используемым способом реализации сканера штрих-кода в приложении.
Некоторые ссылки:
http://code.google.com/p/zxing/
http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/
Использование ZXing для создания приложения сканирования штрих-кода для Android
Однако образцы, которые я нашел в zxing, были вынуждены предложить пользователю перейти на рынок и установить сканер штрих-кода zxing, чтобы мое приложение затем могло вызвать сканер штрих-кода, когда это необходимо, и сканер штрих-кода затем вернет информацию в мое приложение.
Хотя это было бы хорошей отправной точкой для меня, мне было интересно, есть ли какие-либо другие варианты, которые позволили бы мне иметь сканер штрих-кода, встроенный в мое собственное приложение, без необходимости запрашивать у пользователя загрузку вторичного приложения?
Ответы
Ответ 1
Разработчик здесь. Я думаю, вы захотите просто интегрироваться через Intent в конце. Вы получаете бесплатные исправления, исправления ошибок и обходные решения для конкретной платформы. Это намного меньше кода. Но я понимаю, что вы просите альтернативу.
Вероятно, вы захотите разбить сканер штрих-кода (источник которого находится в android/в проекте) и вырезать все, что вам не нужно. Это означает оставить только пакеты com.google.zxing.client.android
и com.google.zxing.client.android.camera
. Ядро декодирования находится в DecodeThread
, но другой код в этих пакетах реализует небольшой танец обратного вызова, который выполняет непрерывное сканирование и получает обычный интерфейс сканирования.
Если вы вставляете код, вам необходимо следовать условиям Apache License.
Ответ 2
Загрузите и расширьте приложение "Штрих-код сканера Zxing", добавив свой собственный код. Это под лицензией Apache 2.0.
Ответ 3
Ознакомьтесь с новым API-интерфейсом Google Play Services 7.8, который включает отслеживание штрих-кода: https://developers.google.com/vision/barcodes-overview
Ответ 4
Я бы посоветовал вам использовать Zxing через намерения и перенаправить на страницу Android Market ("market://details?id=com.google.zxing.client.android"
), если она там отсутствует (ловить ActivityNotFoundException
). Умения отлично подходят для взаимодействия между приложениями, как это.
Ответ 5
Я работаю с этим:
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:[email protected]'
compile 'com.embarkmobile:zxing-android-integration:[email protected]'
Я рекомендую использовать IntentIntegrator
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.forSupportFragment(this).initiateScan();
RequestCode возвращается с
IntentIntegrator.REQUEST_CODE
Не нужно устанавливать отдельный сканер
Ответ 6
Я рекомендую использовать сканирование штрих-кода google. Это довольно отзывчиво. Он называется Google Mobile Vision.
API сканера штрих-кода обнаруживает штрих-коды в реальном времени в любой ориентации. Вы также можете обнаруживать и анализировать несколько штрих-кодов в в разных форматах одновременно.
https://developers.google.com/vision/
https://codelabs.developers.google.com/codelabs/bar-codes/#0
Ответ 7
Я рекомендую использовать https://github.com/RahulRawat95/RScannerView библиотеку, созданную поверх штрих-кода Firebase Vision. Проще интегрировать и использовать.