检测是否启用了语音输入

时间:2015-08-31 14:31:40

标签: android input voice-recognition android-inputtype

如果用户未能通过其设置(语言和输入 - > Google语音输入)启用Google语音输入,则需要向用户显示提醒。有没有办法检测设置状态?

2 个答案:

答案 0 :(得分:1)

所以我找到了答案。没有正式的方法来检测是否启用了语音输入。我已设法获得启用的输入方法列表(键盘,语音等)。

String enabledMethods = Settings.Secure.getString(getActivity().getContentResolver(),Settings.Secure.ENABLED_INPUT_METHODS);

我们可以看到是否启用了Google语音输入,我们可以提醒用户将其打开,但这适用于默认键盘。有些用户使用自定义键盘,这些键盘具有自己的语音到文本实现,并且它不依赖于Google语音输入的用户设置。所以这对他们来说是误报。

答案 1 :(得分:0)

鉴于你知道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;
}