Google zxing client android

Использование ZXing для создания приложения для сканирования штрих-кодов Android

Я искал, как добавить сканер штрих-кода в мое приложение. Есть ли примеры или как я могу сделать это легко?

7 ответов

Проект ZXing предоставляет автономное приложение для чтения штрих-кодов, которое: через механизм намерения Android — могут быть вызваны другими приложениями, которые хотят интегрировать сканирование штрих-кода.

Самый простой способ сделать это — вызвать ZXing SCAN Intent из вашего приложения, как это:

Нажатие кнопки, связанной с mScan , запустится непосредственно на экран сканера штрих-кода ZXing (или сбой, если ZXing не установлен). Как только штрих-код будет распознан, вы получите результат в Activity , здесь, в переменной contents .

Чтобы избежать сбоев и упрощения для вас, ZXing имеет предоставленный класс утилиты, который вы можете интегрировать в свое приложение, чтобы выполнить установку ZXing более плавный, перенаправляя пользователя на Android Market, если он еще не установлен.

Наконец, если вы хотите интегрировать сканирование штрих-кода прямо в ваше приложение, не полагаясь на то, что у вас установлено отдельное приложение ZXing, тогда это проект с открытым исходным кодом, и вы можете это сделать!:)

Изменить: Кто-то редактировал это руководство в этом ответе (это звучит немного странно, я не могу ручаться относительно его точности, и я не уверен, почему они используют Eclipse в 2015 году ):

Шаг за шагом, чтобы установить zxing 3.2.1 в eclipse

Источник

Распознавание Barcode Android

В данной статье мы будем использовать ZXing (Zebra Crossing), чтобы расшифровать штрихкод в нашем Android приложении.

Используя ZXing, нам не нужно думать о том, что у пользователя нет сканера barcode, так как классы, предоставляемые библиотекой позаботятся об этом. Интегрируя ZXing в наше приложение мы можем предоставить пользователю более простую возможность сканировать шрихкоды, также это позволит нам сфокусироваться на разработке основной части приложения.

Создание нового проекта

Шаг 1

В Eclipse создайте новый Android проект. Введите имя приложения, проекта и название пакета.

Шаг 2

Откройте основной шаблон. Eclipse должен был создать стандартный шаблон. Внутри него замените существующий контент на кнопку

После кнопки добавим два текстовых поля, которые будут отображать результаты отсканированной информации.

Добавьте к кнопке текст. Откройте файл res/values/strings

Чтобы просканировать пользователь должен будет нажать на кнопку. Когда приложение получает результат распознавания, оно отобразит его в текстовых полях.

Интегрируем ZXing

Шаг 1

ZXing — библиотека с открытым исходным кодом, предоставляющая возможность распознавания штрихкодов на Android. Некоторые пользователи уже имеют установленное приложение ZXing, поэтому достаточно передать ему код и дождаться результатов. В данном приложении мы рассмотрим способ, вызывающий соответствующую функцию другого приложения. Если данное приложение отсутствует у пользователя, то будет выведено предложение скачать его.

В Eclipse добавим новый пакет в Ваш проект. Для этого кликнем правой кнопкой мыши по папке src и выберем «New»->«Package», а затем введем com.google.zxing.integration.android в качестве имени пакета.

Читайте также:  Андроид поймал вирус что делать андроид
Шаг 2

Eclipse предлагает несколько способов импортирования существующего кода в проект. В данной статье самым простым методом будет создание двух классов, содержащий код из ZXing. Кликните правой кнопкой мыши по Вашему проекту, выберете «New»->«Class» и введите «IntentIntegrator» в качестве названия класса. Остальные параметры Вы можете не изменять. Как только Вы создали класс, проделайте тоже самое, но назовите класс «IntentResult».

Скопируйте код из обоих классов библиотеки, а затем вставьте его в созданные классы.

Теперь Вы можете подключить файлы в основной класс

Вернемся на минутку и также подключим следующие файлы. Обратите внимание, что Eclipse мог уже их подключить за Вас

Изучите содержание двух классов. Изучив их Вы обнаружите, что они не считывают код. Эти два класса являются просто интерфейсами, предоставляющими доступ к функционалу сканирования.

Сканируем

Шаг 1

Давайте реализуем сканирование, когда пользователь нажимает на нашу кнопку. В главном файле приложения существует метод onCreate, который должен выглядеть примерно так

Перед данной функцией создайте следующие переменные, которые будут хранить нашу кнопку и два текстовых поля, созданных в шаблоне

После существующего кода в onCreate добавьте строки, которые будут инициализировать переменные

Теперь, добавим обработчик нажатия

Расширим класс, чтобы объявить интерфейс OnClickListener

Шаг 2

Теперь, мы можем реагировать на нажатие кнопки началом процесса сканирования. Добавим метод onClick

Проверяем, была ли нажата именно кнопка сканирования

Внутри блока с условием создадим экземпляр класса IntentIntegrator, который мы импортировали

Сейчас, давайте вызовем процедуру, которая начнет сканирование

В данный момент должно начаться распознавание, но только, если у пользователя установлено необходимое приложение. Если его нет, то будет предложено начать загрузку. Результат сканирования будет возвращен приложению.

Обработка результатов сканирования

Шаг 1

Сканер будет запущен, когда нажата кнопка. Затем будет возвращен результат сканирования в метод onActivityResult. Добавим его в наш код

Внутри функции постараемся обработать результат

Шаг 2

Как и любые другие данные, полученные от другого приложения, было бы не плохо проверить, что результат не пуст. Продолжим мы только, если у нас есть правильный результат

Если мы не получили результат сканирования (например, пользователь отменил сканирование), то мы просто выведем сообщение

Вернемся в блок с условием, давайте разберемся с тем, что нам вернула библиотека. Объект Intent Result имеет метод, обеспечивающий получение результата сканирования. Получим результат сканирования, как строку

Также, получим вид barcode

Шаг 3

Теперь, наше приложение имеет всю необходимую для отображения информацию. В нашей статье мы просто отобразим ее пользователю.

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

Результаты сканирования

Источник

Google zxing client android

Сканер штрих-кодов

. Считывайте информацию, хранящуюся в штрих-кодах, или создавайте QR-коды для обмена адресами, контактами или текстом между устройствами.

Поиск книг, ПО и веб-страниц осуществляется в Google (в зависимости от выбора страны происхождения), но в настройках можно создать пользовательскую кнопку поиска, например: duckduckgo.com/?q=%s или wikibooks.org/w/index.php?search=%s.

Поддерживает следующие типы штрих-кодов:

* UPC-A и UPC-E
* EAN-8 и EAN-13
* Code 39; 93; 128
* ITF
* Codabar
* RSS-14 (все варианты)
* QR Code
* Data Matrix
* Aztec (в состоянии «бета»)
* PDF 417 (в состоянии «альфа»)

Читайте также:  Установщик bin файлов андроид

Инструкции по устранению неполадок приложения и разъяснения прав доступа — на нашем сайте. Пользователи обмениваются контактами, приложениями и закладками с помощью QR-кодов, поэтому необходимо разрешение на доступ к контактам. См. ниже ссылку «Website» ( https://github.com/zxing/zxing/wiki/Frequently-Asked-Questions ).

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

Если это тоже не помогает, и вы думаете, что дело в самом приложении, напишите автору и приложите нижеуказанное. Без него трудно разобраться, что к чему, поэтому без этой информации ничего делать не станут.

* Тип устройства
* Опишите, что сломалось: приложение падает? не сканирует? что-то непонятно?
* Подтвердите, что прошли все вышеперечисленные шаги
* Приложите журнал устройства с момента его запуска

Пакеты

Можно выбрать загрузку приложения в виде APK (доступно по ссылкам ниже), однако следует помнить, что при такой установке вы не сможете получать уведомления об обновлениях, и что это менее безопасный способ скачивания. Советуем установить приложение F-Droid и использовать его.

Этой версии требуется Android 4.4 и выше.

Собрано и подписано F-Droid, и точно соответствует исходному коду из архива.

Этой версии требуется Android 4.4 и выше.

Собрано и подписано F-Droid, и точно соответствует исходному коду из архива.

Этой версии требуется Android 4.0.3 и выше.

Собрано и подписано F-Droid, и точно соответствует исходному коду из архива.

Источник

Google zxing client android

Project in Maintenance Mode Only

The project is in maintenance mode, meaning, changes are driven by contributed patches. Only bug fixes and minor enhancements will be considered. The Barcode Scanner app can no longer be published, so it’s unlikely any changes will be accepted for it. There is otherwise no active development or roadmap for this project. It is «DIY».

Get Started Developing

ZXing («zebra crossing») is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.

1D product 1D industrial 2D
UPC-A Code 39 QR Code
UPC-E Code 93 Data Matrix
EAN-8 Code 128 Aztec
EAN-13 Codabar PDF 417
UPC/EAN Extension 2/5 ITF MaxiCode
RSS-14
RSS-Expanded
Module Description
core The core image decoding library, and test code
javase JavaSE-specific client code
android Android client Barcode Scanner
android-integration Supports integration with Barcode Scanner via Intent
android-core Android-related code shared among android , other Android apps
zxingorg The source behind zxing.org
zxing.appspot.com The source behind web-based barcode generator at zxing.appspot.com

Available in previous releases

Module Description
cpp C++ port
iphone iPhone client
objc Objective C port
actionscript Partial ActionScript port
jruby JRuby wrapper

ZXing-based third-party open source projects

Module Description
QZXing port to Qt framework
glassechidna/zxing-cpp port to C++ (forked from the deprecated official C++ port)
nu-book/zxing-cpp recent port to C++
zxing_cpp.rb bindings for Ruby (not just JRuby), powered by zxing-cpp
jsqrcode port to JavaScript
python-zxing bindings for Python
ZXing .NET port to .NET and C#, and related Windows platform
php-qrcode-detector-decoder port to PHP
ZXing Delphi Port to native Delphi object pascal, targeted at Firemonkey compatible devices (IOS/Android/Win/OSX) and VCL.
ZXingObjC Port to Objective-C
php-zxing PHP wrapper to Zxing Java library
zxing-js/library TypeScript port of ZXing library
pyzxing Python wrapper to ZXing library

Other related third-party open source projects

Module Description
Barcode4J Generator library in Java
ZBar Reader library in C99
OkapiBarcode

Post to the discussion forum or tag a question with zxing on StackOverflow.

QR code is trademarked by Denso Wave, inc. Thanks to Haase & Martin OHG for contributing the logo.

Optimized with

About

ZXing («Zebra Crossing») barcode scanning library for Java, Android

Источник

Google zxing client android

Crashes on SDK versions older than 21 (#645).

Assets

  • Ability to hide the laser in ViewfinderView (#503).
  • Make possibleResultPoints method in BarcodeCallback optional (#504).
  • Ability to customize or disable the permission error dialog (#505).

Assets

  • Use androidx.
  • Use zxing:core 3.4.0 by default.
  • Minimum SDK version 24, downgradable to 14.
  • Fix ArithmeticException.
  • Fix ResultPoint locations when camera is mirrored.

Assets

  • Use zxing:core 3.3.2 by default (#360).
  • Minimum SDK version 19, or 14 by using zxing:core 3.3.0.
  • Fix preview race condition (#324).
  • Request code can now specified per Intent, instead of globally (#287).
  • More helpers to specify barcode formats.
  • Allow scanning both inverted and non-inverted barcodes at the same time (alternating) (#326).
  • More examples.

Assets

  • Allow changing the REQUEST_CODE value (#234).
  • Add support for inverted scans (#235).
  • Use zxing:core 3.3.0 by default (#265).
  • Fix memory leak when using scan timeout (#283).
  • Better handling of various camera errors (#241, #268, #270)

Assets

  • Beep on scan is now controlled only by the media volume, and still plays
    even if the device is in «silent mode», as long as the media volume is not muted.
  • The 150ms delay after scanning is removed.
  • An issue where the beep sometimes played twice is fixed (#221).
  • Fix rare crash (#209)
  • Fix orientation lock issue (#181)
  • Fix race condition with TextureView (#204)

Assets

  • Add an optional timeout to cancel scanning. (#161)
  • Rename CompoundBarcodeView to DecoratedBarcodeView.
  • Add more internal documentation (comments).

Assets

  • Improved preview scaling strategies, configurable between centerCrop, fitCenter, fitXY (#135)
  • Fix issues with Android 6 permission support (#123)
  • Fix camera initialization issues, specifically related to orientation changes (#133)
  • More control over focus mode (#112)
  • Keep drawing viewfinder frame after scanning / pausing (#134)
  • More control over torch state, and save the state on orientation change (#136)

Assets

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

Читайте также:  Android blobs что это
Оцените статью