2011-11-04 152 views
16

有人可以告訴我,如果創建條碼掃描器應用程序(對於Android)很困難? OpenCV庫是否良好的開始?我在哪裏可以找到明確說明如何閱讀條形碼的算法?我會很感激關於這個話題的所有好材料!如何創建條碼掃描器(Android)?

在此先感謝!

+1

ZXing庫能夠掃描Android上的條形碼。這可能是一個起點。 – Codo

回答

22

斑馬線項目提供了一個獨立的條形碼閱讀器應用程序,它 - 通過Android的意圖機制 - 可誰希望集成條碼掃描其他應用程序調用。

做到這一點,最簡單的方法是調用斑馬線SCAN意圖從你的應用程序,如:

public Button.OnClickListener mScan = new Button.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
     startActivityForResult(intent, 0); 
    } 
}; 

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"); 
      // Handle successful scan 
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 
} 

按掛MSCAN按鈕將直接發射到斑馬線條形碼掃描儀屏幕(或崩潰,如果ZXing沒有安裝)。一旦條形碼被識別出來,你會在你的活動中收到結果,這裏是內容變量。

爲了避免崩潰和簡化您的操作,ZXing有provided a utility class,您可以將它們集成到您的應用程序中,通過將用戶重定向到Android電子市場(如果它們尚未安裝),使ZXing的安裝更加流暢。

最後,如果你想條形碼掃描直接集成到應用程序,而無需依賴於具有安裝了獨立的斑馬線應用程序,以及那麼它是一個開源項目,你可以這樣做! :)

10

您可以使用現有的適用於Android的Zebra Crossing條碼掃描器,可在:http://code.google.com/p/zxing/。通常情況下,您的想法是通過intent來調用它,如下例所示:http://code.google.com/p/zxing/wiki/ScanningViaIntent

+0

比方說,我並不想用這對我做的一切,例如先進的圖書館。 – Ziem

+2

不幸的是,這個庫並不特別容易被用作應用程序中包含的庫jar文件,但您仍然可以手動重新打包它,並嘗試僅使用您需要/想要的部分。然而,正如我所說的,它主要意味着通過意圖使用,將它「嵌入」到您的應用程序中有點困難。也許有人會有不同的建議。 – ivantod

6

斑馬線穿越是有史以來最好記錄的java一維或二維條碼解碼器或編碼器。許多人使用它,它已成爲Android的事實標準。這裏也有a healthy buzz about it

RedLaserhas an api,但如果您在生產中使用它,則必須付費。當我試用它時,我沒有發現這是對斑馬線的改進。當然不是爲price

jjildoes barcodes但是這個項目只有3個提交者,我從來沒有用過它,所以我不知道該怎麼告訴你。它的source當然是可讀的。

一旦你start reading,你會發現由於模糊的圖像,噪聲,失真,怪異的角度等等,讀者是棘手的事情來實現。所以如果你想要一些可靠的東西,你可能想要一個社區維護的圖書館。