【问题标题】:Dialog of RecognizerIntent in background后台识别器意图对话框
【发布时间】:2016-11-03 14:38:04
【问题描述】:

我想在 Android 中使用 startActivityForResult 启动一个 RecognizerIntent,但没有对话框窗口,基本上将 UI 保持在启动 Activity 的前面(下面的屏幕截图中带有“Session”的背景)。

当我在 Android 中使用 startActivityForResult(audioIntent,1) 启动语音识别时,会出现如下图所示的 RecognizerIntent 对话框:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                      RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
if (!intent.hasExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE))
{
    intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
            "com.dummy");
}
startActivityForResult(intent,1);

我知道我可以使用没有对话的SpeechRecognizer 类,但它没有我需要的所有功能。有没有办法在没有可见对话框的情况下使用 RecognizerIntent startActivityForResult?关于 SO 的所有其他类似问题都使用 SpeechRecognizer,我想避免。

【问题讨论】:

  • 有没有办法在没有弹出窗口的情况下使用 startActivityForResult? 如果 没有弹出窗口 你的意思是不显示 Activity,那么显然:没有
  • 我的意思是说“现在说”的叠加层,有什么办法可以禁用它吗?
  • SpeechRecognizer 缺少哪些功能?
  • 它不允许同时转录和捕获音频。

标签: android dialog popup speech-recognition startactivityforresult


【解决方案1】:

除非startActivityForResult(audioIntent,1) 有禁用弹出窗口的选项,否则不会。这是别人写的活动。按照您想要的方式,您需要使用(可能)插入谷歌的语音识别来编写自己的活动。祝你好运,玩得开心!

【讨论】:

  • 那么您的意思是需要覆盖 RecognizerIntent 吗?
  • 不,你正在开始一个不是你写的活动,所以可能没有源代码。您想启动一项完全按照您的意愿进行的活动。唯一的办法就是自己写。除非你能找到一些可以重复使用的东西。
  • 是否有另一种方法来启动已经实现但没有 UI 的活动,例如将其嵌入服务或类似的?
  • 我不知道,您将不得不深入研究文档。我希望你可以导入你需要的类/东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多