1. 程式人生 > >Android 系列 5 7使用Google ZXing條形碼掃描器掃描條形碼或QR碼

Android 系列 5 7使用Google ZXing條形碼掃描器掃描條形碼或QR碼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                5.7使用Google ZXing條形碼掃描器掃描條形碼或QR碼

問題
您希望應用程式能夠掃描條形碼或QR碼(“QR”原本代表“快速反應”)。

使用Intent訪問由Google ZXing條形碼掃描器公開的掃描功能。
討論
Android的一個偉大的功能是它是多麼容易利用現有的功能。掃描條形碼和QR碼是一個很好的例子。 Google有一個免費的掃描應用程式,您可以通過意圖訪問;因此應用程式可以輕鬆新增掃描功能,開放新的介面,通訊和功能的可能性。
此配方中的程式是如何通過Intent訪問Google條碼掃描器的示例。確保已安裝Google條碼掃描器(https://market.android.com/details?id=com.google.zxing.client.android)。在圖中,有三個按鈕,讓使用者選擇掃描QR碼,產品條形碼或其他東西。有兩個TextView用於顯示掃描的條形碼型別及其包含的資料。佈局是常規的:一個垂直的LinearLayout,所以我們不需要在這裡重現它。


活動程式碼如例5-16所示;根據按下哪個按鈕,程式在啟動ZXing活動之前將相關引數放入Intent,並等待結果。
例項5-16。掃描程式主活動
public
class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void HandleClick(View arg0) {Intent intent = new Intent("com.google.zxing.client.android.SCAN");switch(arg0.getId()){case
R.id.butQR:intent.putExtra("SCAN_MODE", "QR_CODE_MODE");break;case R.id.butProd:intent.putExtra("SCAN_MODE", "PRODUCT_MODE");break;case R.id.butOther:intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR");break;}try {startActivityForResult(intent, 0); //Barcode Scanner to scan for us
} catch (ActivityNotFoundException e) {Toast.makeText(this, "Please install the ZXing Barcode Scanner app", Toast.LENGTH_LONG).show();}}public void onActivityResult(int requestCode, int resultCode, Intent intent) {if (requestCode == 0) {TextView tvStatus=(TextView)findViewById(R.id.tvStatus);TextView tvResult=(TextView)findViewById(R.id.tvResult);if (resultCode == RESULT_OK) {tvStatus.setText(intent.getStringExtra("SCAN_RESULT_FORMAT"));tvResult.setText(intent.getStringExtra("SCAN_RESULT"));} else if (resultCode == RESULT_CANCELED) {tvStatus.setText("Press a button to start a scan.");tvResult.setText("Scan cancelled.");}}}}

注意,在下面的表格中,如何可以掃描條形碼族(使用SCAN_MODE)或特定型別的條形碼(使用SCAN_FORMATS)。如果知道正在解碼什麼型別的條形碼,則將掃描格式設定為該特定型別可以導致更快的解碼(它不會試圖執行通過所有條形碼解碼演算法)。例如,您可以使用intent.putExtra(“SCAN_FORMATS”,“CODE_39”)。要使用多個SCAN_FORMATS,您需要傳遞逗號分隔的列表;請參見示例5-16。


現在去,使掃描庫存控制或雜貨列表應用程式,你一直在想!           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述