了解安卓系统默认键盘

4
我希望能够知道用户在Android上选择的默认键盘。我知道可以使用InputMethodManager访问启用的输入方法列表,但是我想知道用户当前正在使用哪个键盘。
目前,我已经尝试获取当前输入法子类型:
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
InputMethodSubtype subtype =imeManager.getCurrentInputMethodSubtype();

但是这个对象似乎只能给我用户选择的语言环境和输入类型(语音、键盘等)。我还尝试过启用了的输入法列表:
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> list =imeManager.getEnabledInputMethodList();
    for(InputMethodInfo i: list){
        ...
    }

然而,类不包含该方法是否为默认输入法的信息。
我知道肯定有一种方法,因为每次我打开SwiftKey键盘并且没有设置为默认键盘时,输入法选择器都会出现。那么,他们如何知道他们的键盘当前未被设置为默认键盘?
我知道这个问题可能是重复的,因为它与此问题相同。然而,那个问题没有得到答案,所以我真的希望现在有人能帮助我。
谢谢。
1个回答

7
使用此方法获取默认键盘。
Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);

获取有关当前键盘的更多信息:

for(InputMethodInfo i: list){
  if (i.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) {
    ...
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接