2010-07-31 44 views
9
确定活动输入法

如何确定当前哪种输入方法处于活动状态 - 用户可以通过长按文本编辑字段来更改输入法(软键盘) - 从代码中,如何确定输入法用户选择Android:从代码

+0

这是很难说你在这里问什么。你能提供更多的上下文,还有一些代码来突出问题? – 2010-08-01 00:02:16

+0

对不起 - 我添加了Android的标签 - 在Android中,用户可以通过在编辑字段上长按更改输入法,我想知道的是如何查询Android系统以确定哪些可能的输入方法用户已选择。 – 2010-08-01 04:03:17

+0

为什么你的应用想知道这个? – adamp 2010-08-01 17:22:01

回答

21

我意识到你可能不需要这个了,但有人可能想要这个答案。您可以使用此行来获得输入法的字符串ID使用:

String id = Settings.Secure.getString(
    getContentResolver(), 
    Settings.Secure.DEFAULT_INPUT_METHOD 
); 

如果你想获取有关当前键盘的更多信息,你可以使用:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList(); 

    final int N = mInputMethodProperties.size(); 

    for (int i = 0; i < N; i++) { 

     InputMethodInfo imi = mInputMethodProperties.get(i); 

     if (imi.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) { 

      //imi contains the information about the keyboard you are using 
      break; 
     } 
    }