1

所以,我一直在尝试使用 Google Goggles Intent,这样我就可以将扫描仪用作 OCR 设备。我在我的活动中使用了以下代码:

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        //intent.setPackage("com.google.zxing.client.android");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        Log.d("TAG", "start goggles!");
        startActivityForResult(intent, 0);    

至于我的 onActivityResult,它看起来像这样:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

        super.onActivityResult(requestCode, resultCode, intent);
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                Log.d("TAG", "result back!"+contents);
                Toast.makeText(getBaseContext(), contents, Toast.LENGTH_LONG).show();

            } else if (resultCode == RESULT_CANCELED) {
                Toast.makeText(getBaseContext(), "CANCELLED", Toast.LENGTH_LONG).show();
                // TODO: Handle cancel
            }
        }
    }

上面的代码成功启动了另一个应用程序,但无法带回结果,并且总是以 RESULT_CANCELLED resultCode 结束。(我正在使用后退按钮返回我的应用程序,我在这里做错了吗?)

任何帮助,将不胜感激。谢谢!

4

1 回答 1

2

好吧,如果您使用后退按钮返回您的应用程序,当然resultCode会是 RESULT_CANCELED,因为您实际上取消了 Goggles 请求。如果您在 Googles 中扫描有效的二维码,它应该会自动关闭并返回到您的 Activity 中RESULT_OK

请注意,如果您是第一次启动 Goggles,它将显示一个教程并要求您进行一些初始设置。当这个出现时,它不会在扫描二维码后返回到您的应用程序。

于 2014-07-05T20:06:10.813 回答