前置步驟
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










