我想在我的自定义键盘中创建一个按钮,按下该按钮会将键盘切换到默认用户键盘。我已经想出如何设置输入键盘:
final String LATIN = "com.android.inputmethod.latin/.LatinIME";
final IBinder token = this.getWindow().getWindow().getAttributes().token;
imm.setInputMethod(token, LATIN);
在这种情况下,按下我想要实现的按钮会将键盘切换到默认的用户指定键盘(LATIN键盘)。
问题出在这个特定的例子中,字符串已经给出了。
如何找到默认用户指定键盘的ID字符串,以便我可以设置InputMethod
。
答案 0 :(得分:2)
您可以获取当前活动键盘的ID,如下例所示:
String id = Settings.Secure.getString(
getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD)
如果您的软键盘当前正在用于输入,则上述代码将返回键盘的ID。
但是,你可以这样做: 单击输入选择器按钮后,您可以显示输入方法列表,并让用户选择他喜欢的输入法:
InputMethodManager inputManager = (InputMethodManager) this.getBaseContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showInputMethodPicker();
上面的代码将打开一个系统对话框,可以选择输入法。 此外,您可以在下面的代码中获取输入法列表:
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);
Log.d("TAG", "Input Method ID: "+ getApplicationContext().getPackageName(); }