使用zxing IntentIntegrator在scanresult上获取空内容

时间:2018-11-20 19:33:34

标签: android kotlin qr-code zxing

为什么扫描后onActivityResult中的内容为空?

不知道这是否重要,但是我在用Java编写的另一个活动中使用了相同的代码,并且工作正常。使用该活动时,我不会得到空内容。

private fun onClickScan(view: View){
    IntentIntegrator(this).initiateScan()
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if(resultCode == Activity.RESULT_OK) {
        val scanResult: IntentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent)
        if (scanResult != null) {
            val contents = scanResult.contents
            // contents is null 
        } else {
            super.onActivityResult(requestCode, resultCode, data)
        }
    }
}

enter image description here

这是java中的相同代码,这一代码对我有用。

public void onClick( View view )
{
    //SomeActivity.this - what could be the kotlin equivalent??? I'm passing 'this' in the kotlin version
    IntentIntegrator integrator = new IntentIntegrator(SomeScanActivity.this);
    integrator.initiateScan();
}

@Override
protected void onActivityResult( int requestCode, int resultCode, @Nullable Intent data )
{

    IntentResult result = IntentIntegrator.parseActivityResult( requestCode, resultCode, data );
    if(result != null) {
        String contents = result.getContents();
        if(contents != null)
        {
            // contents is not null
        }
    }
}

0 个答案:

没有答案