2011-08-29 47 views
15

tôi chỉ nhập khẩu các thư viện ZXing trong ứng dụng của tôi, tôi biết làm thế nào để thiết lập putExtra chức năng để quét QR-Code mã vạch:ZXing cách quét mã vạch QR-Code và 1D?

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

và nếu tôi muốn quét mã vạch 1D:

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

nhưng làm cách nào để ứng dụng có thể quét cả hai ?? (Mã vạch 1D và 2D).

Cảm ơn! Marco

Trả lời

27

Nếu bạn chỉ muốn quét cả hai (và không độc quyền hai):

Đừng thêm SCAN_MODE thêm đến mục đích. Đó là tùy chọn để giới hạn loại mã vạch cho một loại nhất định. Không chỉ định nó sẽ quét tất cả các loại có thể.

+0

Cảm ơn Tôi không biết tôi có thể làm điều đó :) Tác phẩm hoàn hảo! –

2

Tôi khuyên bạn nên sử dụng IntentIntegrator đó là một lớp mà dự án Zxing có mà tôi đang sử dụng với một trong các ứng dụng của tôi. Tôi đã cung cấp liên kết tới tệp. Nó đóng gói mã quét và rất tuyệt vời cho chức năng quét đơn giản. Phương thức initiateScan là nơi bạn muốn xem. Thưởng thức!

5

Chỉ cần xem qua các dòng mã này. Nó làm việc cho tôi một cách hoàn hảo như bạn muốn.

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.setPackage("com.google.zxing.client.android"); 
       //intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
       intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE"); 
       startActivityForResult(intent, 0); 
2

bạn nên sử dụng "SCAN_MODE" thay vì "QR_CODE_MODE":

INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

nên

INTENT.putExtra("SCAN_MODE", "SCAN_MODE"); 
Các vấn đề liên quan