2013-06-18 2 views
2

Я пытаюсь использовать штрих-код zxing в одном из моих приложений для сканирования штрих-кодов. Я использовал намерение запустить сканер штрих-кодов на кнопке.Zxing ITF штрих-код не сканируется в пользовательском приложении

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
startActivityForResult(intent, 0); 

То, что я обнаружил, что большинство штрих-кода может сканировать нормально, но когда я пытаюсь сканировать ITF (Interleaved 2 из 5) штрих-код внутри моего приложения он не работает, но если я просто использовать сканер ZXing штрих-кода работает хорошо.

Теперь я искал какое-то время и прочитал, что могу использовать ALLOWED_LENGTH. Я не мог найти много информации о том, как передать эту информацию сканеру. Я попробовал следующее, но на самом деле это не имеет никакого значения.

**int[] item = new int []{6, 7, 8, 9, 10, 11, 12, 13};** 
**intent.putExtra("ALLOWED_LENGTHS", item);** 

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

Заранее спасибо

ответ

1

Решение

intent.putExtra("SCAN_MODE", Intents.Scan.ONE_D_MODE); 

Примечание: Вы должны, вероятно, использовать предоставленные намерения, вместо жесткого кодирования строковое отдельно оплачиваемые предметы

Объяснение

Это не имеет никакого отношения к разрешенной длине. ITF не один из форматов PRODUCT_MODE

PRODUCT_FORMATS = EnumSet.of(BarcodeFormat.UPC_A, 
          BarcodeFormat.UPC_E, 
          BarcodeFormat.EAN_13, 
          BarcodeFormat.EAN_8, 
          BarcodeFormat.RSS_14, 
          BarcodeFormat.RSS_EXPANDED); 

Он включен в списке 1D форматов

ONE_D_FORMATS = EnumSet.of(BarcodeFormat.CODE_39, 
          BarcodeFormat.CODE_93, 
          BarcodeFormat.CODE_128, 
          BarcodeFormat.ITF, 
          BarcodeFormat.CODABAR); 
ONE_D_FORMATS.addAll(PRODUCT_FORMATS); 

изменений ваших намерений дополнительным бы включить поддержку ITF, но может иметь и другие последствия (например, функция поиска продукта)

+0

Hi, Извините, что так долго ответил на ответ. Спасибо за вашу помощь. То, что я сделал в конце должен был поставить следующую строку в коде 'intent.putExtra ("SCAN_FORMATS", "PRODUCT_MODE, CODE_39, CODE_93, CODE_128, DATA_MATRIX, ITF");' Который работает сейчас, но Я попробую ваши решения позже. В очередной раз благодарим за помощь – dogwasstar