gpt4 book ai didi

android - Google Speech to Text 从通知

转载 作者:搜寻专家 更新时间:2023-11-01 09:41:39 24 4
gpt4 key购买 nike

我已经创建了一种永久性的通知,我的目标是这样的

1) 用户点击通知
2) Google Speech to Text activity 启动并接受语音输入
3) 输入被转换为文本,一个新的 Activity 开始显示该文本。

这是我到目前为止尝试过的——

    NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this)
.setSmallIcon(android.R.drawable.ic_dialog_alert)
.setContentTitle("Tap for voice input")
.setContentText("Hi");

Intent resultIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
resultIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
resultIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
resultIntent.putExtra(RecognizerIntent.EXTRA_PROMPT,
getString(R.string.speech_prompt));
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);

Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(MainActivity.this);
notificationManager.notify(0, notification);

现在我知道我可以通过使用 startActivityForResult(resultIntent, REQ_CODE_SPEECH_INPUT); 正常处理识别器 Intent 的结果,并在我的 activity 中处理它

但我必须将我的 Intent 传递到 pendingIntent 以获取 notification

我有什么办法可以做到这一点?

编辑 1:

我可以开始一个新的 Activity ,然后打开语音谷歌语音提示,但我希望在 Activity 开始之前将转换后的字符串传递给我的 Activity ,就像在 Intent 中使用额外的参数...

最佳答案

使用“隐形”Activity 作为中介。可以有没有 UI 的 Activity ,例如参见 this SO post伊曼纽尔·莫克林 (Emanuel Moecklin)。因此,您可以像这样修改应用程序的流程:

  • 用户点击通知
  • 没有 UI 的
  • Activity 启动并调用 startActivityForResult() 以获取 STT 转换的结果
  • Google Speech to Text Activity 启动并接受语音输入
  • 输入被转换为文本并作为结果发送到无 UI 的 Activity
  • ... 这又会启动一个显示该文本的新 Activity

关于android - Google Speech to Text 从通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39633993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com