所以,我一直在尝试使用 Google Goggles Intent,这样我就可以将扫描仪用作 OCR 设备。我在 Activity 中使用了以下代码:
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 结束。 (我正在使用后退按钮返回到我的应用程序,我在这里做错了什么吗?)
如有任何帮助,我们将不胜感激。 谢谢!
最佳答案
好吧,如果您使用后退按钮返回您的应用程序,resultCode
当然会是 RESULT_CANCELED
,因为您确实取消了 Goggles 请求。如果您在 Google 中扫描有效的二维码,它会自动关闭并返回到您的 Activity 并显示 RESULT_OK
。
请注意,如果您是第一次启动 Goggles,它会显示一个教程并要求进行一些初始设置。出现时,扫描二维码后不会返回到您的应用。
关于Android Intent to Google Goggles 总是导致 RESULT_CANCELLED。如何为我的 Activity 恢复合法结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589609/