0

出于某种原因,当我要求扫描一维条码时,不会调用 onActivityResult 方法。有解决方法吗?如果没有,是否有另一个条形码应用程序可以与我的应用程序集成,或者我需要从头开始构建一个?

代码:

btnScan.setOnClickListener(new View.OnClickListener() 
    {   
        @Override
        public void onClick(View arg0) 
        {
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "PRODUCT_MODE");

            try{
                startActivityForResult(intent, 0);
            }catch(ActivityNotFoundException ex){
                showDownloadDialog();
            }
        }
    });

返回码:

    @Override public void onActivityResult(int requestCode, int resultCode, Intent intent){
    if (requestCode == 0)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Scan");
        builder.setMessage(intent.getStringExtra("SCAN_RESULT"));

        builder.create().show();

        Log.d("SCAN", "sup");
    }

    Log.d("SCAN", "sup sup");
}

提前致谢。

编辑:实际上,甚至 QR 码都没有调用 onActivityResult。我正在使用 TabActivity。也许这与某些事情有关?

编辑 2:好的,我尝试在 ActivityB 上使用 startActivity。ActivityB 负责调用 startActivityForResult(zxing) 然后在 onActivityResult 中发出一个日志。工作。现在我只需要知道 TabActivity 有什么问题。

4

1 回答 1

0

好的,我设法调用了 onActivityResult。在儿童活动中,我使用了:

getParent().startActivityForResult(intent, positive_request_code);

然后,在父活动 (TabActivity) 中,我将 onActivityResult 放在那里。

于 2012-05-17T19:38:10.420 回答