2013-06-18 42 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(5交錯2)條碼它不工作,但如果我只是用斑馬線條形碼掃描器它的工作原理精細。

現在我一直在尋找一段時間,並已閱讀,我可以使用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

嗨, 對不起花了這麼長時間回覆。謝謝你的幫助。我所做的,在年底把下面一行代碼 'intent.putExtra( 「SCAN_FORMATS」, 「PRODUCT_MODE,CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF」);' 現在是工作,但我會稍後嘗試您的解決方案。再次感謝你的幫助 – dogwasstar