【问题标题】:Integration problem ZXing via Intent集成问题 ZXing via Intent
【发布时间】:2011-05-19 11:59:53
【问题描述】:

嗯,我正在尝试实现 zxing 与我的 Android 应用程序的集成。在我的应用程序中有一个 MainActivity。在这个 MainActivity 中,我使用一个按钮来执行下面的第一个代码块。但是每次执行第一个代码块并且应用程序读取 QR 码时,我都会在第二个块中收到值 RESULT_CANCELED 作为 resultCode。打开 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
        }
    }
}

【问题讨论】:

  • 为什么第二个块叫onActivityResult2而不是onActivityResult?
  • 对不起,当我复制代码时,我插入了数字 2。我的代码中没有这个数字。
  • 你不是在zxing中压回吗?

标签: android android-intent intentfilter zxing


【解决方案1】:

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

【讨论】:

  • 你用的ZXing版本是什么?
  • 我删除了包含包的行,问题一直发生。其他建议?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多