前置步驟
Step1.下載zxing https://github.com/zxing/zxing/archive/master.zip
Step2. File -> import android這個資料夾
Step3. 去下載的資料夾 android-core 最裡層的CameraConfigurationUtils.java檔案
複製貼到剛剛import下的CaptureActivity\src\com\google\zxing\client\android\camera下。
Step4. 下載core-3.2.0.jar http://mvnrepository.com/artifact/com.google.zxing/core/3.2.0
在CaptureActivity資料夾下建立libs,將core-3.2.0.jar放入。
Step5. 在 CaptureActivity專案點右鍵 -> Properties->點選Android->勾選Android 4.4.2
點選 Java Compiler ->Compiler選擇 compliance level: 1.7
Step6. 點選上方功能列Project -> Clean ->勾選CaptureActivity,
然後回頭去把Android的Is Library打勾
Step7. 打勾後有些檔案會出現錯誤,打開這些檔案,在switch上用滑鼠點一下,按下鍵盤
Ctrl+1,點選Convert'switch' to 'if-else',每個有錯誤的檔案接照此方法。
---------------------------------------已上完成前置動作---------------------------------------
建立新專案
1.在專案點右鍵 -> Properties->點選Android->點選Add->加入CaptureActivity
2.AndroidManifest.xml
3./res/layout/activity_main.xml
4.MainActivity.java
package tw.android; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { static final String ACTION_SCAN = "com.google.zxing.client.android.SCAN"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //掃描一維條碼 public void scanBar(View v) { try { Intent intent = new Intent(ACTION_SCAN); intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); //一維條碼模式 startActivityForResult(intent, 0); } catch (ActivityNotFoundException anfe) { } } //掃描QRcode public void scanQR(View v) { try { Intent intent = new Intent(ACTION_SCAN); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); //QR code模式 startActivityForResult(intent, 0); } catch (ActivityNotFoundException anfe) { } } //傳回結果 public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { //get the extras that are returned from the intent String contents = intent.getStringExtra("SCAN_RESULT"); //掃描結果 String format = intent.getStringExtra("SCAN_RESULT_FORMAT");//掃描格式 Toast toast = Toast.makeText(this, "內容:" + contents + " 格式:" + format, Toast.LENGTH_LONG); toast.show(); } } } }
檔案下載:
https://github.com/terryyamg/scannerTest
參考來源:
1.https://github.com/zxing/zxing
2.http://www.androidaz.com/development/zxing-qr-reader-direct-integration
3.http://examples.javacodegeeks.com/android/android-barcode-and-qr-scanner-example/
4.http://mvnrepository.com/artifact/com.google.zxing/core/3.2.0
5.http://stackoverflow.com/questions/11226941/error-in-switch-cases-of-zxing-project-in-android
6.http://stackoverflow.com/questions/24818566/build-library-zxing-for-android-project