我正在尝试从我的应用中调用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始终接收resultCode为0而不是-1(即.RESULT_OK)
有人能指出我的示例方向或帮助我理解我需要在这里做些什么才能达到设定身份并将其与语音结果一起接收回来的目标?