Import zxing android studio

Распознавание 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, который мы импортировали

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

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

Читайте также:  And navigator android apk

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

Шаг 1

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

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

Шаг 2

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

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

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

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

Шаг 3

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

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

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

Источник

AlexHedley / MainActivity.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

repositories <
mavenCentral()
maven <
url «https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/»
>
>
dependencies <
compile ‘com.google.zxing:core:2.2’
compile ‘com.embarkmobile:zxing-android-minimal:1.2.1@aar’
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// import the various classes
// Add the controls to your View
Button button;
TextView tvScanResults;
@Override
protected void onCreate( Bundle savedInstanceState) <
super . onCreate(savedInstanceState);
setContentView( R . layout . activity_barcode);
button = ( Button ) findViewById( R . id . button);
tvScanResults = ( TextView ) findViewById( R . id . textView);
button . setOnClickListener( this );
>
@Override
public void onClick( View v) <
IntentIntegrator . initiateScan( this );
>
// Add the following
public void onActivityResult( int requestCode, int resultCode, Intent intent) <
IntentResult scanResult = IntentIntegrator . parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null ) <
// handle scan result
tvScanResults . setText(scanResult . getContents());
> else <
// else continue with any other code you need in the method
Log . v( » BarcodeActivity » , » No result » );
>
>

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.

Источник

Import zxing into Android Studio project

Once I’ve downloaded the zip from github and extracted it, how do I integrate it into Android Studio? I need zxing to scan QR codes and I’m developing on Android Lollipop. I think I only need the android and core folders but I don’t exactly know what to do with them. Thanks for your help.

2 Answers 2

If you just want to call a qrscanner activity, scan a qr and get results back. You don’t need to import whole project. You can do(This needs qr scanner application by zxing downloaded in phone):

Create a function so that if activity is not found(QR scanner App is not installed), it will prompt to download application by zxing from play store.

Читайте также:  Почему хонор 10 лайт не обновляется до андроид 10

Get result from QRScanner in onActivityResult method.

Goto File->Project Structure->In the dialog press the Green «+» button on the top left side. From there select «Import Gradle Project»(if its a gradle project) or «Import Eclipse ADT project»(if the lib is an eclipse project).->Next->Select the Downloaded(Extracted) lib.

Now the lib is added as a module in your Project. Once the Build process is complete, Once again Goto File->Project Structure-> Click on your «app» module->Click on «Dependencies» tab->Click on the green «+» button on the top right corner.->Module dependency->Select the Module from the dialog->OK

By Adding the whole lib into your project, the user won’t be prompted to download an external QR code scanner from your application.

Источник

Интеграция ZXing в Android Studio

я начну объяснять все шаги, которые я сделал, и в конце концов, в чем проблема.

  1. Скачать ZXing-2.2 https://code.google.com/p/zxing/downloads/list
  2. Extrac все в zxing-2.2.
  3. Загрузите и установите Apache Ant http://www.youtube.com/watch?v=XJmndRfb1TU
  4. С помощью командной строки Windows (Run->CMD) перейдите в извлеченный каталог
  5. в командной строке тип окна ‘ Ant-F core / build.xml » нажмите enter и пусть Apache работает, это магия

но Wooops, » Buildfile: corebuild.xml не существует! Ошибка сборки. ладно. 6. импорт ZXing-отсутствует ядро / сборка.в XML

теперь да, у меня есть мой основной.сосуд.

  1. Открыть Android Studio, Файл — > Импортировать Проект — > Выбрать / android/ in/zxing-2.2 / — > создать проект из существующих источников — > имя проекта: andoid — > исходные файлы для. все проверено Next — > библиотеки (не могу ничего сделать) Next — > модули (Android проверено) Next — > SDK 1.7 Next — > Finish

С проектом Open — > Build — > Rebuild project

100 ошибок 19 предупреждений

файл — > структура проекта — > Библиотеки — > добавить — > Java — > выберите ядро.jar, который я создаю раньше, и OK — > Library ‘core’ будут добавлены в выбранный модуль. (android) OK -> и OK в диалоговом окне структура проекта.

Build — > Перестроить Проект

15 ошибок 20 предупреждений

все ошибки являются ошибкой: требуется постоянное выражение и Я вижу ошибка в случаях переключения проекта ZXing в android Я меняю все переключатели на if elses.

0 ошибок 20 предупреждений

хорошо, теперь продолжайте:

Файл — > Новый проект — > Zxing_demo Next — > Next — > пустое действие Next — >Закончить

в новом проекте — > файл — > модуль импорта — > поиск и выберите / android / OK — > создать модуль из существующих источников Далее — > Далее — > Далее — > Далее — > Готово

теперь я вижу в explorer / android/ / zging_demoProject / и внешних библиотеках

теперь я меняю свой код tu scan QR

теперь проверить, запустить -> Debug

Я вижу в AndroidManifest.xml в этой строке

«CaptureActivity» красным цветом и ошибка говорят: не удается разрешить символ «CaptureActivity»

файл — > структура проекта — > модули — > zxing_demo — > зависимости — > добавить — > зависимость модуля — > Android OK — > применить и OK

теперь CaptureActivity выглядит хорошо

Я думаю, что я будет использовать приложение и намерения, но теперь я хочу сделать эту работу, если кто-то сейчас что случилось подскажите пожалуйста.

4 ответов

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

Читайте также:  Полная версия яндекса для планшета андроид

существует реальный удобный репозиторий git, который предоставляет zxing проект библиотеки android в качестве архива AAR.

все, что вам нужно сделать, это добавить это для вашего телосложения.Gradle в

и Gradle делает все волшебство для компиляции кода и делает его доступным в вашем приложении.

чтобы запустить сканер после этого, используйте этот класс / метод: Из деятельности:

существует несколько вариантов настройки:

у них пример-проект и обеспечивают несколько интеграции примеры:

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

Источник

How to import ZXING to android studio?

I use android studio I want to import ‘ZXING’ in my application, I find many articles and found the following site

I downloaded the ZIP and unzip, and find some tutorials But it does not seem to be too detailed about the details, what I need to import? To achieve QRCode scan

I still have no idea how to do it

4/14 I tried Lennon URL provided «zxing-android-minimal» And import the ‘gradle-wrapper.jar’

But when I wrote new IntentIntegrator (this) .initiateScan (); Still appear «Can not resolve symbol ‘IntentIntegrator» message

I do have a right ‘.jar select Add As Library But when an error occurs, he does not seem to be added

Finally no longer appear «Can not resolve symbol ‘IntentIntegrator» this is the code,What do I wrong?

I removed the new IntentIntegrator (this) .initiateScan (); ‘applications normal operation

5 Answers 5

You should define your zxing dependency in build.gradle file:

This is the Core barcode encoding/decoding library which you can use to build your custom barcode scanner/generator app.

If you need to support just a simple case of scanning the barcode you can embed ZXing Android Barcode Scanner application using ZXing Android Embedded project.

This is a port of the ZXing Android Barcode Scanner application as an Android library project, for embedding in other Android applications.

If you decide to use the ZXing Android Embedded project it’s as easy as defining your dependencies in build.gradle file:

Launch the intent with the default options:

And get your result:

I had many troubles when I developed my app using zxing library. So take a look this zxing minimal: https://github.com/Promptus/zxing-android-minimal/tree/master

It worked perfectly to me and was easier to implement.

Open up this file in your project:

Edit the distributionUrl line and set it too:

distributionUrl=http://services.gradle.org/distributions/gradle-1.8-all.zip Rebuild your project.

Update: You might want to use gradle-2.1-all.zip now.

First of all, you must remove your libs file. Then you have to remove

from your build.gradle of MyApplication , because that gradle is for the whole project, and it’s better you use it in each module.

After that, open the build.gradle of the module app and add the following code:

And finally, you need to delete google.zxing.integration.android from your project, otherwise, an error will show up when you compile.

To resolve the back button problem, you can do the following code:

Источник

Оцените статью