好吧,我正在尝试将zxing与我的Android应用程序集成。在我的应用程序中有一个MainActivity。在这个MainActivity中,我使用一个按钮来执行下面的第一个代码块。但每次执行第一个代码块并且应用程序读取QR代码时,我会在第二个块中收到resultCode值RESULT_CANCELED。打开ZXing活动后立即执行第二个块。我做错了什么?
第一段代码
Intent intent1 = new Intent("com.google.zxing.client.android.SCAN");
intent1.setPackage("com.google.zxing.client.android");
intent1.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent1, 0);
第二段代码
public void onActivityResult(int requestCode, int resultCode, Intent intent2) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents2 = intent2.getStringExtra("SCAN_RESULT");
String format2 = intent2.getStringExtra("SCAN_RESULT_FORMAT");
EditText assetMon1 = (EditText) findViewById(R.id.assetMon1);
assetMon1.setText(contents2);
} else if (resultCode == RESULT_CANCELED) {
// Every time I receive this code
}
}
}
答案 0 :(得分:0)
我的应用程序中的代码非常相似。唯一显着的区别是我有“PRODUCT_MODE”而不是“ONE_D_MODE”。
答案 1 :(得分:0)
关注android-integration
下项目中的sample code provided。只需调用此类中的方法,而不是调试自己的版本。我认为使用requestCode 0最有可能是问题,但我猜。它应该是请求的一种唯一ID。但是0可能被其他东西使用,而你真的听到了对其他东西的回应。