Я искал, как добавить сканер штрих-кода в мое приложение. Есть ли примеры или как я могу сделать это легко?
Использование ZXing для создания приложения для сканирования штрих-кодов Android
Ответ 1
Проект 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 имеет предоставленный класс утилиты, который вы можете интегрировать в свое приложение, чтобы выполнить установку ZXing более плавный, перенаправляя пользователя на Android Market, если он еще не установлен.
Наконец, если вы хотите интегрировать сканирование штрих-кода прямо в ваше приложение, не полагаясь на то, что у вас установлено отдельное приложение ZXing, тогда это проект с открытым исходным кодом, и вы можете это сделать!:)
Изменить: Кто-то редактировал это руководство в этом ответе (это звучит немного странно, я не могу ручаться относительно его точности, и я не уверен, почему они используют Eclipse в 2015 году ):
Шаг за шагом, чтобы установить zxing 3.2.1 в eclipse
- Загрузить zxing-master.zip с " https://github.com/zxing/zxing"
- Unzip zxing-master.zip, используйте eclipse для импорта проекта "android" в zxing-master
- Загрузите core-3.2.1.jar из раздела " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
- Создайте папку "libs" в проекте "android" и вставьте cor-3.2.1.jar в папку libs
- Нажмите на проект: выберите "свойства" → "Компилятор Java", чтобы изменить уровень до 1.7. Затем нажмите на "Android" change "Project build target" на Android 4.4.2+, потому что использование 1.7 требует компиляции с Android 4.4
- Если "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/" и вставить в свой проект.
- Очистить и построить проект. Если в вашем проекте отображается ошибка "switch-case", вы должны изменить их на "if-else".
- Завершено. Очистить и построить проект. Вы можете нажать "Proprties" > "Android" > нажать "Библиотеки" для использования в вашем проекте.
Ответ 2
У меня была проблема с реализацией кода, пока я не нашел какой-то веб-сайт (я не могу найти его сейчас), который объяснил, что вам нужно включить имя пакета в имя intent.putExtra.
Это будет подтягивать приложение, но оно не будет распознавать штрих-коды, и когда я изменил его с.
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
в
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
Это работало отлично. Просто совет для любых других начинающих Android-программистов.
Ответ 3
Использование предоставленного 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
Ответ 4
Если вы хотите включить в свой код и не использовать IntentIntegrator, который рекомендует библиотека ZXing, вы можете использовать некоторые из этих портов:
Я использую первый, и он работает отлично! У него есть пример проекта, чтобы попробовать его.
Ответ 5
Использование Zxing таким образом требует, чтобы пользователь также установил приложение сканера штрих-кода, что не идеально. Скорее всего, вам нужно напрямую связать Zxing с вашим приложением.
Я настоятельно рекомендую использовать эту библиотеку: https://github.com/dm77/barcodescanner
Все проблемы с сумасшедшей конструкцией, которые вы собираетесь запустить, пытаются интегрировать Xzing или Zbar напрямую. Он использует эти библиотеки под обложками, но обертывает их очень простым в использовании API.
Ответ 6
Обнаружение штрих-кода теперь доступно в сервисах Google Play. Лаборатория кода процесса настройки, вот api docs, и образец проекта.
Ответ 7
Вы можете использовать это краткое руководство по началу работы http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/ с помощью простого примера проекта для создания приложения для Android без IntentIntegrator.