許多開發者試圖手動構建 PlanarYUVLuminanceSource,需理解 data, width, height, dstLeft, dstTop, dstWidth, dstHeight 等參數含義,極易出錯。
AndroidManifest.xml 註冊活動:
<activity android:name="com.google.zxing.client.android.CaptureActivity"
android:configChanges="orientation|keyboardHidden" />
<activity android:name="com.google.zxing.client.android.PreferencesActivity"
android:configChanges="orientation|keyboardHidden" />
// 啟動
Intent intent = new Intent(this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE_SCAN);
// 接收
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {
String result = data.getStringExtra("SCAN_RESULT");
// 處理掃碼結果
}
}
若需自定義掃描界面,可繼承 CaptureActivity 並覆寫 onCreate、drawViewfinder 等方法,而非從頭寫解碼邏輯。