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

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


person Donal Rafferty    schedule 09.04.2010    source источник
comment
возможный дубликат stackoverflow.com/questions/2050263/   -  person Christopher Orr    schedule 10.04.2010
comment
Попробуйте мой блог по этому поводу, может поможет. mcondev.wordpress.com/2011 / 06/24 /   -  person Siddharth    schedule 14.12.2011
comment
Просто к сведению - code.google.com/p/zxing перемещен в github.com/zxing/zxing   -  person Les    schedule 10.06.2014
comment
Я сделал код для генерации штрих-кода и сканирования штрих-кода. Вы можете следовать этому, чтобы получить пошаговый код. stackoverflow.com/a/58742737/11613683   -  person Pramesh Bhalala    schedule 07.11.2019


Ответы (7)


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

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

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

person Sean Owen    schedule 10.04.2010
comment
@ james-baca ваше изменение моего ответа было в основном вандализмом, и оно было отменено. Напишите свой собственный ответ, рекламирующий вашу услугу. - person Sean Owen; 22.08.2015
comment
эээ, и под этим я имел в виду сервис Google Play, а это здорово. Речь шла о перезаписи чужого ответа при редактировании. - person Sean Owen; 22.08.2015
comment
Я сделал код для генерации штрих-кода и сканирования штрих-кода. Вы можете следовать этому, чтобы получить пошаговый код. stackoverflow.com/a/58742737/11613683 - person Pramesh Bhalala; 07.11.2019

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

person Chris K    schedule 09.04.2010
comment
Так что, по сути, взять исходный код Zxing и переписать его, чтобы делать то, что я хочу? - person Donal Rafferty; 09.04.2010
comment
Это была бы моя рекомендация. Вероятно, вы могли бы просто включить существующий источник, вызвать его и довольно легко захватить возвращенный штрих-код. Я предполагаю, что вам вообще не придется менять очень большую часть кода. - person Chris K; 09.04.2010

Google Mobile Vision устарел и заменен на ML Kit. https://developers.google.com/ml-kit/vision/barcode-scanning Он предоставляет SDK для Android и iOS и активно совершенствуется с помощью новейших технологий Google. Для Android он предоставляет SDK, которые могут объединять модель, а также SDK, который может автоматически извлекать модель из службы Google Play, если вы хотите сохранить размер приложения.

person Chenxi Song    schedule 02.03.2021

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

person Scott    schedule 15.08.2015
comment
Я сделал код для генерации штрих-кода и сканирования штрих-кода. Вы можете следовать этому, чтобы получить пошаговый код. stackoverflow.com/a/58742737/11613683 - person Pramesh Bhalala; 07.11.2019

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

person yanchenko    schedule 09.04.2010
comment
Да, я знаю, что могу это сделать, но мне нужны альтернативы тому, чтобы просить пользователя установить отдельное приложение только для сканирования. - person Donal Rafferty; 09.04.2010

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

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

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

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

person casillas    schedule 24.05.2017
comment
Google Mobile Vision устарел и заменен на ML Kit. developers.google.com/ml-kit/vision/barcode-scanning Он предоставляет SDK для Android и iOS и активно улучшается с помощью новейших технологий Google. Для Android он предоставляет SDK, которые могут объединять модель, а также предоставляет SDK, который может автоматически извлекать модель из службы Google Play, если вы хотите сохранить размер своего приложения. - person Chenxi Song; 03.03.2021

Я работаю с этим:

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();

RequestCode возвращается с

IntentIntegrator.REQUEST_CODE

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

person formica    schedule 24.11.2015