前置步驟
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
請問有用 android studio的方法嗎
回覆刪除兩個方法
刪除1.從eclipse轉檔import到Android Studio 參考 http://www.inote.tw/how-to-transfer-eclipse-android-project-to-android-studio
2.下載Android Studio版的zxing https://github.com/journeyapps/zxing-android-embedded/archive/master.zip
Import到你的Android Studio,執行裡面的sample
做到6之後為什麼都沒有發生檔案錯誤??
回覆刪除哈哈,這我就不曉得了耶,不過沒發生錯誤不是很好嗎
刪除請問一下
回覆刪除setContentView(R.layout.activity_main )
R下面出現紅色
CLEAN過了都沒辦法
要怎麼辦?
這代表你的R檔案不存在或有錯誤
刪除這時候要先
1.查看XML檔是否有錯誤
2.若無錯誤,Clear你的Project
3.Clear還是存在錯誤,請重新建立一個新Project,每個檔案都一個一個新增,再將對應程式碼貼過去,不要用複製檔案的方式
cameraResolution = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution);
回覆刪除這一句有問題
好像找不到CameraConfigurationUtils
應該是少了這個步驟,所以少了這個檔案
刪除Step3. 去下載的資料夾 android-core 最裡層的CameraConfigurationUtils.java檔案
請問這個CameraConfigurationUtils cannot be resolved的問題,他一直說無法解析
回覆刪除但是我都有把步驟三的檔案放進去了,還是說我有甚麼部分沒做到
你可以先試試Project -> Clean看看,不行的話再自己建一個CameraConfigurationUtils.java檔案,然後複製程式碼過去。
刪除你好 請問你用的版本跟軟體是哪個呢謝謝
回覆刪除手機版本Android 4.2以上,開發IDE:Eclipse 或 Android Studio
刪除