Android - Сканирование штрих-кода, Опции? ZXing? - PullRequest
20 голосов
/ 09 апреля 2010

Я хочу создать приложение для 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, чтобы мое приложение могло затем вызывать сканер штрих-кода, когда это необходимо, и сканер штрих-кода затем возвращал информацию мое приложение.

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

Ответы [ 6 ]

21 голосов
/ 10 апреля 2010

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

Вы, вероятно, хотите удалить сканер штрих-кода (чей источник находится в Android / в проекте) и удалить все, что вам не нужно. Это означает, что нужно оставить только пакеты com.google.zxing.client.android и com.google.zxing.client.android.camera. Ядро декодирования находится в DecodeThread, но другой код в этих пакетах реализует небольшой танец обратного вызова, который выполняет непрерывное сканирование и получает обычный пользовательский интерфейс сканирования.

Если вы встраиваете код, вам необходимо соблюдать условия Apache License .

7 голосов
/ 09 апреля 2010

Загрузите и расширите приложение Zxing «Barcode Scanner», добавив свой собственный код. Это под лицензией Apache 2.0.

4 голосов
/ 15 августа 2015

Ознакомьтесь с новым API Google Play Services 7.8, который включает отслеживание штрих-кода: https://developers.google.com/vision/barcodes-overview

2 голосов
/ 09 апреля 2010

Я бы посоветовал вам использовать Zxing через намерения и перенаправить на страницу Android Market ("market://details?id=com.google.zxing.client.android"), если его там нет (ловит ActivityNotFoundException). Интенты отлично подходят для взаимодействия между приложениями.

0 голосов
/ 24 мая 2017

Я рекомендую использовать сканирование штрих-кодов Google. Это довольно отзывчиво. Он называется Google Mobile Vision.

API сканера штрих-кодов обнаруживает штрих-коды в режиме реального времени ориентации. Вы также можете обнаружить и проанализировать несколько штрих-кодов в разные форматы одновременно.

https://developers.google.com/vision/

https://codelabs.developers.google.com/codelabs/bar-codes/#0

0 голосов
/ 24 ноября 2015

У меня это работает с этим:

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

IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
integrator.forSupportFragment(this).initiateScan();

Код запроса возвращается с

IntentIntegrator.REQUEST_CODE

Нет необходимости устанавливать отдельный сканер

...