ZXing通过Intent集成问题

时间:2011-05-19 11:59:53

标签: android android-intent intentfilter zxing

好吧,我正在尝试将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
        }
    }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

关注android-integration下项目中的sample code provided。只需调用此类中的方法,而不是调试自己的版本。我认为使用requestCode 0最有可能是问题,但我猜。它应该是请求的一种唯一ID。但是0可能被其他东西使用,而你真的听到了对其他东西的回应。