2015-09-23 52 views
1

我正在使用zxing在我的應用程序中實現條形碼掃描器。 問題是掃描結果始終將UPC-E檢測爲掃描格式並返回錯誤結果。任何方式來解決這個問題?條形碼掃描器總是讀取UPC-E

我發起與下面的代碼掃描:

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
      intent.putExtra("SCAN_MODE", "PRODUCT_MODE");//for Qr code, its "QR_CODE_MODE" instead of "PRODUCT_MODE" 
      intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history 
      startActivityForResult(intent, 0); 

和OnActivity塊如下:

@Override 
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"); 
      Log.d("SEARCH_EAN", "OK, EAN: " + contents + ", FORMAT: " + format);//this is the result 
     } else 
     if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 

條形碼掃描儀一直在使用條形碼4.7.3.apk 安裝任何線索將不勝感激。

+1

它沒有讀取您想要的條形碼並首先發現假陽性。您應該在Intent中指定要掃描的格式,因爲您甚至不想掃描UPC-E –

+0

在ONE_D_CODE_TYPES變量中,我指定了我想要的格式,並且已從該列表中刪除了UPC-E,仍然繼續給出相同的結果 – pikachu

+0

這可能是因爲core.jar文件沒有正確集成?我從http://repo1.maven.org/maven2/com/google/zxing/core/3.2.0/ – pikachu

回答

2

你的例子有許多錯誤的事情。首先,您正在添加不需要的核心庫代碼,因爲您正在通過Intent進行集成。

其次,由於某種原因,您正在調用兩次掃描。第二組代碼什麼都不做。相機的參數代碼也什麼都不做。

第三我認爲你正在使用一個不同的項目,而不是zxing進行整合,因爲項目中沒有setDesiredBarcodeFormats方法。除非我忘記這是舊版本或其他東西。

最後,您正在掃描所有ONE_D_CODE_TYPES而不是您想要的格式。

+0

感謝您的回覆。我明白我錯在哪裏。我更改了代碼(編輯了問題),但掃描UPC-E的問題仍然存在。 – pikachu

+0

另外我想補充一點,由於前凸輪質量,圖像顯示相當模糊。我讀了幾篇關於這個原因的文章。 – pikachu