1

好吧,我正在尝试实现 zxing 与我的 Android 应用程序的集成。在我的应用程序中有一个 MainActivity。在这个 MainActivity 中,我使用一个按钮来执行下面的第一个代码块。但是每次执行第一个代码块并且应用程序读取 QR 码时,我都会在第二个块中收到值 RESULT_CANCELED 作为结果代码。打开 ZXing Activity 后立即执行第二个块。我做错了什么?

第一个代码块

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
        }
    }
}
4

2 回答 2

0

我的应用程序中有非常相似的代码。唯一显着的区别是我有“PRODUCT_MODE”而不是“ONE_D_MODE”。

于 2011-05-19T12:25:07.970 回答
0

按照项目中提供的示例代码android-integration进行操作。只需调用此类中的方法,而不是调试您自己的版本。我认为使用 requestCode 0 最有可能是问题所在,但我猜。它应该是请求的一种唯一 ID。但是 0 可能会被其他东西使用,而你真的听到了对其他东西的回应。

于 2011-05-20T15:59:09.517 回答