ZXing二维码扫描仪在扫描过程中嵌入按下后退按钮



我有以下场景:我使用Gradle的Maven存储库将ZXing集成到我的Android应用程序中。

在我的扫描活动中,代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.scan_layout);
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
    integrator.setPrompt(" ");
    integrator.setScanningRectangle(700, 700);
    integrator.setResultDisplayDuration(0);
    integrator.setCameraId(0);  // Use a specific camera of the device
    integrator.initiateScan();
}
  public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    //retrieve scan result
    IntentResult scanningResult = null;
    scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if (scanningResult != null) {
     //we have a result
        String scanContent = scanningResult.getContents();
        if(isConnected()) {
            requestdata("http://rm360project-001-site1.smarterasp.net/api/endpoint", scanContent);
        }else {
            Toast.makeText(this, "Internet Connection not available", Toast.LENGTH_LONG).show();
        }
    } else {
        Intent getMainScreen = new Intent(ScanScreen.this, MainActivity.class);//pentru test, de sters
        startActivity(getMainScreen);
    }
}

我希望它的工作方式:
1.如果我扫描二维码,请调用函数requestdata
2.如果我在扫描过程中按下后退键,请转到MainActivity

问题是:即使在我按下设备时,函数requestdata也会被调用,我想这是因为scaningResult从不为空。按下back时不应该为null吗?你知道为什么会发生这种事吗?非常感谢。

不知道你是否仍然感兴趣,但。。。
只需更改这一行:

     if (scanningResult != null) {

对此:

     if (scanningResult != null && resultCode==RESULT_OK) {

出于某种原因,简单的scanningResult实际上并没有像ZXing团队所建议的那样返回null,即使Intent被取消。

最新更新