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

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

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

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

 public Button.OnClickListener mScan = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); } }; public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } } 

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

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

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


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

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

  1. Загрузите zxing-master.zip с ” https://github.com/zxing/zxing
  2. Unzip zxing-master.zip, использовать eclipse для импорта проекта «android» в zxing-master
  3. Загрузите core-3.2.1.jar с ” http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/
  4. Создайте папку «libs» в проекте «android» и вставьте cor-3.2.1.jar в папку libs
  5. Нажмите на проект: выберите «свойства» -> «Компилятор Java», чтобы изменить уровень до 1.7. Затем нажмите на «Android» изменить «Project build target» на Android 4.4.2+, так как использование 1.7 требует компиляции с Android 4.4
  6. Если «CameraConfigurationUtils.java» не существует в «zxing-master / android / app / src / main / java / com / google / zxing / client / android / camera /». Вы можете скопировать его из «zxing-master / android-core / src / main / java / com / google / zxing / client / android / camera /» и вставить в свой проект.
  7. Очистить и построить проект. Если в вашем проекте отображается ошибка «switch-case», вы должны изменить их на «if-else».
  8. Завершено. Очистить и построить проект. Вы можете нажать «Proprties»> «Android»> нажать «Библиотеки» для использования в вашем проекте.

У меня была проблема с внедрением кода, пока я не нашел какой-либо веб-сайт (я не могу найти его снова прямо сейчас), в котором объясняется, что вам нужно указать имя пакета в имени aim.putExtra.

Он потянет приложение, но не узнает никаких штрих-кодов, и когда я его изменил.

 intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

в

 intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE"); 

Он отлично работал. Просто подсказка для любых других начинающих программистов andorid.

Использование предоставленного IntentInegrator лучше. Это позволяет вам запрашивать у пользователя установку сканера штрих-кода, если у него его нет. Он также позволяет настраивать сообщения. Константа IntentIntegrator.REQUEST_CODE содержит значение кода запроса для onActivityResult для проверки в приведенном выше блоке if.

 IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR 

IntentIntegrator.java

Если вы хотите включить в свой код и не использовать IntentIntegrator, рекомендуемый библиотекой Zxing, вы можете использовать некоторые из этих портов

http://code.google.com/p/android-zxinglib/

http://code.google.com/p/android-quick-response-code/

Я использую первое и отлично работает! У него есть образец проекта, чтобы попробовать его

Использование Zxing таким образом требует, чтобы пользователь также установил приложение сканера штрих-кода, что не является идеальным. Скорее всего, вам нужно напрямую связать Zxing с вашим приложением.

Я настоятельно рекомендую использовать эту библиотеку: https://github.com/dm77/barcodescanner

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

Обнаружение штрих-кода теперь доступно в сервисах Google Play . Лаборатория кода процесса настройки – это api docs и пример проекта .

Вы можете использовать это краткое руководство по запуску http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/ с простым примером проекта для создания приложения для Android без IntentIntegrator.

Давайте будем гением компьютера.