android - 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”键盘有一个麦克风按钮,按下它实际上会启动“谷歌语音输入”键盘。
所以我认为应该有一种方法可以以编程方式启动“谷歌语音输入”键盘。
解决方案
据我所知,您无法以编程方式选择要在应用程序中使用的特定输入法编辑器 (IME)(例如 Google 语音输入),甚至无法标记输入字段以要求语音输入(请参阅在语音识别中启动 Android 键盘模式)。
SwiftKey 本身是一个 IME,因此它可以调用setInputMethodAndSubtype之类的东西来更改为不同的 IME。
推荐阅读
- json - 如何使用 Jersey 将多部分数据(JSON + 八位字节流)从服务器发送到客户端?
- angular - 使用 angular ngrx 和 firestore,set() 方法返回 undefined
- java - 运行 HelloWorld.java 时找不到 java.exe
- libgdx - Libgdx 表布局逻辑表未正确定位
- c++ - 无法使用 c++11 编译简单的 Rcpp 函数
- python-3.x - 为什么我在这个问题中遇到运行时错误?
- laravel-5 - 在模态中定义的表单属性在 laravel 中没有获得动态值:(
- java - CardView 未以编程方式添加到 LinearLayout
- c# - 限制角度之间的铰链关节旋转
- ios - 在 Swift 中启动并将字符串传递给目标视图控制器