【问题标题】:Detect if voice typing is enabled检测是否启用了语音输入
【发布时间】:2015-08-31 14:31:39
【问题描述】:

如果用户尚未从其设置(语言和输入法 -> Google 语音输入)中启用 Google 语音输入,我需要向他们显示警报。有没有办法检测到设置状态?

【问题讨论】:

    标签: android input voice-recognition android-inputtype


    【解决方案1】:

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

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

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

    【讨论】:

    • Krasimir 的此命令返回 com.sec.android.inputmethod/.SamsungKeypad:com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService。您可以检查字符串是否包含 %voice%...
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 2013-08-31
      • 2011-08-02
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多