要点:
尝试开发一个可以在代码中使用if-else语句在手机上安装的键盘之间切换的应用程序。是否可以在不支持设备的情况下执行此操作?
请注意:
我的简单研究只能导致在root设备上执行此操作,否则它不可能并且应该由用户手动完成 - 但这是相对较旧的信息(从2011年开始),所以也许现在可能吗?
背景故事:
目前,(在教程的帮助下),我们制作了一个自定义键盘的应用程序,我们想让应用程序(代表用户)以编程方式在这个自定义键盘和手机的默认键盘之间切换。
我们是如何尝试的:
在其中一个实现KeyboardView的类中,有一段代码:
public View onCreateInputView() {
KeyboardView kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
Keyboard keyboard = new Keyboard(this, R.xml.qwerty);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);
return kv;
}
似乎这句话:kv.setKeyboard(keyboard);
可以改变键盘,所以如果我们添加一个类似的语句但是改变它的参数来引用默认键盘,那么可以有效地进行切换吗?
如果是,那么如何引用默认键盘?
答案 0 :(得分:1)
我认为你不能以编程方式更改开关键盘。但你可以使用键盘选择器。
InputMethodManager ime=(InputMethodManager)getActivity().getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(ime!=null) {
ime.showInputMethodPicker();
}
P.S:这只会显示用户在设置中设置的有效键盘