Zxing - 在阅读任何qr代码之前从相机视图按下后退按钮

时间:2017-04-16 09:13:11

标签: android android-activity qr-code zxing

这是我用来实现QR码扫描程序的代码的一部分,使用zxing库。

单击该按钮后,将激活mScannerView.stopCamera(),并显示扫描屏幕。如果我从该屏幕按下电话后退按钮,则在读取任何qrcode之前,应用程序将完全关闭,并且不会返回上一个活动。在阅读任何qr代码之前,当我按下手机上的后退按钮时,如何返回上一个活动(从调用startCamera()的位置开始)?有什么想法吗?

新活动:

导入com.google.zxing.Result; import me.dm7.barcodescanner.zxing.ZXingScannerView;

public class New extends Activity实现ZXingScannerView.ResultHandler {

private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new);
}
public void onClick(View v){
    mScannerView = new ZXingScannerView(this);
    setContentView(mScannerView);
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();
}

@Override
protected void onPause() {
    super.onPause();
    mScannerView.stopCamera();
}

@Override
public void handleResult(Result result) {
    //Do anything with result here :D
    Log.w("handleResult",result.getText( ));
    AlertDialog.Builder builder= new AlertDialog.Builder(this);
    builder.setTitle("Scan Result");
    builder.setMessage(result.getText());
    AlertDialog alertDialog = builder.create();
    alertDialog.show();

    //Resume scanning uncomment below
    //mScannerView.resumeCameraPreview(this);
}

}

1 个答案:

答案 0 :(得分:1)

就个人而言,我使用这个包。见https://github.com/journeyapps/zxing-android-embedded。可以使用清除指令在Gradle中进行设置。

在原始活动中,添加以下内容。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if(result != null && resultCode == RESULT_OK) {
        // if user scanned and the result is valid, do your stuff here
    } else {
        // if user pressed back or there's error, do your stuff here
    }
}