1

我正在尝试从我的应用程序中调用 RecognizerIntent,并获取与特定 ID 关联的结果。我正在努力弄清楚如何传递我的 id 以便在结果的附加部分中返回它。

最初,我尝试过这样的事情:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
intent.putExtra(TasksDbAdapter.KEY_ROWID,taskId);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent, RESULT_SPEECH);

不幸的是,传递给 onActivityResult 的包中不包含附加在此意图上的内容

查看文档,有一个字段 EXTRA_RESULTS_PENDINGINTENT_BUNDLE 似乎可以让你做我想做的事。但我一直无法弄清楚如何正确实施它。

这是我最近的尝试:

Intent pending = new Intent(v.getContext(),Main.class);
pending.putExtra(TasksDbAdapter.KEY_ROWID, itId);
PendingIntent pIntent = PendingIntent.getActivity(v.getContext(),RESULT_SPEECH,pending,0);

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT,pIntent);
intent.putExtra(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT_BUNDLE,pending.getExtras());
startActivityForResult(intent, RESULT_SPEECH);

不幸的是,这不起作用。目前,OnActivityResult 总是收到 0 的 resultCode,而不是 -1(即 RESULT_OK)

任何人都可以指出一个示例的方向或帮助我理解我需要在这里做什么来实现设置 id 并将其与语音结果一起接收到文本的目标吗?

4

0 回答 0