繁体   English   中英

ZXing 二维码扫描器在扫描时嵌入按返回键的问题

[英]ZXing QR code scanner embedded pressing back button during scan issue

我有以下场景:我使用 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 永远不会为空。 按下后退时它不应该为空吗? 你知道为什么会这样吗? 谢谢!

不知道你是否还有兴趣,但是...
只需更改此行:

     if (scanningResult != null) {

对此:

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

出于某种原因,即使取消了 Intent,扫描结果实际上也不会按照 ZXing 团队的建议返回 null。

只需更改代码即可

if (scanningResult != null)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM