android - ZXING Intent 请求码(识别我的 Intent )

标签 android android-intent zxing onactivityresult

在我的 Android APP 中,每当我需要从同一个 Activity 调用许多不同的 ActivitiesForResult 时,我会这样做:

public void firstMethod() {
    int requestCode = 1;
    Intent intent = new Intent(SomeCode1.class);
    startActivityForResult(intent,requestCode);
}

public void secondMethod()  {
    int requestCode = 2;
    Intent intent = new Intent(SomeCode2.class);
    startActivityForResult(intent,requestCode);
}

为了知道它来自哪个 Intent ,我这样识别它们:

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
  switch (requestCode) {
        case 1: {
              // some code 
        } case 2: {
              // some code
        }
  }

我试图从同一个 Activity 中两次调用 ZXING 条形码扫描器,但我不知道如何使用它设置请求代码。

    IntentIntegrator intentintegrator= new IntentIntegrator(this);
    IntentIntegrator.initiateScan(ZxingIntent.QR_CODE_TYPES);

有人知道怎么实现吗?我需要修改 IntentIntegrator 代码吗?

最佳答案

我看到了 2 个解决方案。一个是创建一个新 Activity ,只是为了调用 IntentIntegrator 并将 requestCode 放入这个新 Activity 。

第二个选项是修改 IntentIntegrator - 这就是我所做的。

我删除了最终属性,

// public static final int REQUEST_CODE = 0x0000c0de;
public static int REQUEST_CODE = 0x0000c0de;

增加了设置请求码的功能:

  public void setRequestCode(int requestCode) {
    REQUEST_CODE = requestCode;
  }

我这样调用条码扫描器:

    int requestCode = 2;
    IntentIntegrator intentintegrator= new IntentIntegrator (this);
    intentintegrator.setRequestCode(requestCode);
    intentintegrator.initiateScan(ZxingIntent.QR_CODE_TYPES);

我不知道 RequestCode 0x0000c0de 的用途以及为什么它是最终的,但该应用程序似乎可以正常工作。

关于android - ZXING Intent 请求码(识别我的 Intent ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25629677/

相关文章:

android - zxing如何增加扫描区域大小

android - 收到 100% 对象后恢复 repo 同步

javascript - 如何使用 Javascript 更改 EditText 内容?

android - 如何拦截 Parrot B350-XT 蓝牙耳机的蓝牙按钮事件?

android - 如何在特定时间开始申请

java - ZXING Barcode Scanner如何不能全屏只能半屏

java - 无法解析 ZXing java 项目的导入

android - 滚动项目android时禁用listview点击或触摸

android - 失去对文本项目输入的关注后, ionic 项目选择在 android 上闪烁

android - 在表格中输入多行的最简单方法