ZXing как сканировать QR-код и 1D штрих-код?

Я просто импортировал библиотеку 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

Ответы

Ответ 1

Если вы просто хотите отсканировать оба (и не только эти два):

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

Ответ 2

Просто пройдите эту строку кода. Он работает для меня отлично, как вы хотите.

 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);

Ответ 3

Я рекомендую использовать IntentIntegrator, это класс, который имеет проект Zxing, который я использую с одним из моих приложений. Я предоставил ссылку на файл. Он инкапсулирует код сканирования и отлично подходит для простой функции сканирования. Метод initiateScan - это то, где вы хотите посмотреть. Наслаждайтесь!

Ответ 4

вы должны использовать "SCAN_MODE" вместо "QR_CODE_MODE":

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

должен быть

INTENT.putExtra("SCAN_MODE", "SCAN_MODE");