首页 > 解决方案 > Android:无法以编程方式启动“谷歌语音输入”

问题描述

所以,我有这个简单的语音到文本翻译的应用程序。

我正在使用它在我的活动中启动谷歌语音到文本翻译器:

val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault())
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Hi speak something")
startActivityForResult(intent, 1)

它会启动以下屏幕 - 现在这允许我一次只说一个句子,但不能连续语音到文本翻译 在此处输入图像描述

取而代之的是,我想在需要时以编程方式启动“谷歌语音输入”键盘,因为它允许连续语音到文本的翻译。 在此处输入图像描述

我找不到任何资源来启动“谷歌语音输入”键盘。

“SwiftKey”键盘有一个麦克风按钮,按下它实际上会启动“谷歌语音输入”键盘。

所以我认为应该有一种方法可以以编程方式启动“谷歌语音输入”键盘。

标签: androidkeyboardtranslationvoice

解决方案


据我所知,您无法以编程方式选择要在应用程序中使用的特定输入法编辑器 (IME)(例如 Google 语音输入),甚至无法标记输入字段以要求语音输入(请参阅在语音识别中启动 Android 键盘模式)。

SwiftKey 本身是一个 IME,因此它可以调用setInputMethodAndSubtype之类的东西来更改为不同的 IME。


推荐阅读