【发布时间】:2015-08-31 14:31:39
【问题描述】:
如果用户尚未从其设置(语言和输入法 -> Google 语音输入)中启用 Google 语音输入,我需要向他们显示警报。有没有办法检测到设置状态?
【问题讨论】:
标签: android input voice-recognition android-inputtype
如果用户尚未从其设置(语言和输入法 -> Google 语音输入)中启用 Google 语音输入,我需要向他们显示警报。有没有办法检测到设置状态?
【问题讨论】:
标签: android input voice-recognition android-inputtype
所以我找到了答案。没有检测是否启用语音输入的官方方法。我设法获得了启用的输入法(键盘、语音等)的列表。
String enabledMethods = Settings.Secure.getString(getActivity().getContentResolver(),Settings.Secure.ENABLED_INPUT_METHODS);
在那里我们可以看到是否启用了谷歌语音输入,我们可以提醒用户打开它,但这适用于默认键盘。一些用户使用自定义键盘,它们有自己的语音转文本实现,并且不依赖于谷歌语音输入的用户设置。所以这对他们来说是一个误报。
【讨论】:
鉴于您知道 IME 的包名称,您可以执行以下操作:
boolean isImeEnabled(String packageName) {
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
for (InputMethodInfo imi : imm.getEnabledInputMethodList()) {
if (imi.getPackageName().equals(packageName)) {
return true;
}
}
return false;
}
【讨论】: