Android 使用 zxing library 的一些問題

最近有個項目要導入 QR Code 功能

雖然之前假日無聊寫的 sample project 上有用過一些其他的 library (zbar)

原因無他,因為我覺得 zxing 的掃描畫面太醜然後步驟麻煩

code 要手刻的部分不少,相對來說 zbar 的導入就比較輕鬆

不過 zbar 的專案標題頁面就清楚說他只是 reader

好死不死今天要用到產生 QR Code 的功能,只好硬著頭皮重做

雖然同樣的 preview_size 問題都會碰到,暫時先不管他

產生部分的做法是參考底下的網址

使用 Zxing 產生 QR Code

首當其衝就是 encodeAsBitmap 這個 function 會出現問題

The method encode(String, BarcodeFormat, int, int, Hashtable) in the type MultiFormatWriter is not applicable for the arguments (String, BarcodeFormat, int, int, Map)

底下留言提出一個主意,copy paste 之後非常好,另外 BitMatrix 與 ByteMatrix 一個問題又冒出來

cannot convert from BitMatrix to ByteMatrix

根據 這邊 可以知道是 zxing library jar 檔版本造成

說到這邊還是要 XX 一下 zxing 的 github 項目

借了 Android Quick Response Code 裡面的 core.jar 來用之後紅燈解除

然後換 DecodeFormatManager 發作

PRODUCT_FORMATS.add(BarcodeFormat.RSS14);

主要是變數字串被改

PRODUCT_FORMATS.add(BarcodeFormat.RSS_14);

改成 RSS_14 就沒問題了

其他的等寫完再說吧 Orz