Ответ 1
Если вы просто хотите отсканировать оба (и не только эти два):
Не добавляйте дополнение SCAN_MODE
к намерению. Это необязательно, чтобы ограничить тип штрих-кода определенным типом. Не указывая, что он сканирует все возможные типы.
Я просто импортировал библиотеку ZXing в свое приложение, я знаю, как настроить функцию putExtra
на сканировать штрих-код QR-кода:
INTENT = new Intent("com.google.zxing.client.android.SCAN");
INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(INTENT, 0);
и если мне нравится сканировать 1D штрих-код:
INTENT = new Intent("com.google.zxing.client.android.SCAN");
INTENT.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(INTENT, 0);
но как я могу заставить приложение сканировать оба? (1D и 2D штрих-код).
Спасибо! Marco
Если вы просто хотите отсканировать оба (и не только эти два):
Не добавляйте дополнение SCAN_MODE
к намерению. Это необязательно, чтобы ограничить тип штрих-кода определенным типом. Не указывая, что он сканирует все возможные типы.
Просто пройдите эту строку кода. Он работает для меня отлично, как вы хотите.
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
//intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
startActivityForResult(intent, 0);
Я рекомендую использовать IntentIntegrator, это класс, который имеет проект Zxing, который я использую с одним из моих приложений. Я предоставил ссылку на файл. Он инкапсулирует код сканирования и отлично подходит для простой функции сканирования. Метод initiateScan - это то, где вы хотите посмотреть. Наслаждайтесь!
вы должны использовать "SCAN_MODE" вместо "QR_CODE_MODE":
INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");
должен быть
INTENT.putExtra("SCAN_MODE", "SCAN_MODE");