如何以编程方式在手机键盘之间切换



摘要:

试图开发一款应用程序,只需代码中的if-else语句即可在手机上安装的键盘之间切换。有可能在不生根的情况下做到这一点吗?

请注意:

我的初步研究只导致了在根设备上这样做的能力,否则这是不可能的,应该由用户手动完成——但这是相对较旧的信息(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);可以更改键盘,所以如果我们添加一个类似的语句,但更改其参数以引用默认键盘,那么可以有效地进行切换吗?如果是,那么如何引用默认键盘?

我认为您无法通过编程方式更改开关键盘。但您可以使用键盘选择器。

InputMethodManager ime=(InputMethodManager)getActivity().getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(ime!=null) {
ime.showInputMethodPicker();
}

p.S:这将只显示用户在设置中设置的活动键盘

最新更新