Question: I am successfully using zxing to scan codes, by calling the installed barcode reader's intent, but when it beeps and indicates a good scan I expect the zxing activity would return control so I can process the result, but it sits there and tries to scan again. I have to press the back button and *then* it returns and I can do the next step. Is there some obvious flag I'm missing when I call the scanner?

Any advice gratefully received. Many thanks.

Here's my code:

```
public boolean onTouchEvent(final MotionEvent event) {

    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);

    return true;
    }

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

            // Handle successful scan

            String s = "http://www.google.com/search?q=";
            s += contents;
            Intent myIntent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
            startActivity(myIntent1);
            }
        else 
            if (resultCode == RESULT_CANCELED) {
                // Handle cancel
                }
            }
        }
    }

```

Answer: 
Why not use the provided `IntentIntegrator` class? This is the only approach mentioned in the project docs, did you have a look at those? <https://github.com/zxing/zxing/wiki/Scanning-Via-Intent>

I created it to wrap up these details of sending and parsing the Intent, so you don't make typos. For example, there's no such thing as extra "com.google.zxing.client.android.SCAN.SCAN\_MODE".
Add finishActivity(requestCode); at the end of onActivityResult() method.

Try this:
Replace your first 2 lines in onTouch with the below code. It seems the issue is while scanning codes other than QR. Please remove the scan filter and check once.

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.addFlags(Intent.FLAG\_ACTIVITY\_CLEAR\_WHEN\_TASK\_RESET);