Код запроса намерения ZXING (идентифицирующий мое намерение)

В моем приложении для Android всякий раз, когда мне нужно вызвать много разных ActivityForResult из одного и того же действия, я делаю это следующим образом:

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);
}

И чтобы узнать, с каким намерением это произошло, я узнаю их так:

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

Я пытаюсь дважды вызвать сканер штрих-кода ZXING из одного и того же действия, и я не знаю, как установить с ним код запроса.

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

Кто-нибудь знает, как это сделать? Нужно ли мне изменять код IntentIntegrator?


person cvetozaver    schedule 02.09.2014    source источник


Ответы (1)


Я вижу 2 решения. Можно было бы создать новое действие, просто чтобы вызвать IntentIntegrator и поместить код запроса в это новое действие.

Второй вариант состоял в том, чтобы изменить 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 и почему он окончательный, но приложение вроде работает.

person cvetozaver    schedule 02.09.2014
comment
как вы удалили строку из файла только для чтения? Я хочу сделать то же самое. Помогите мне. - person Irony Stack; 09.11.2017