以编程方式更改Android设备的输入法

7
我正在开发一个小型Android应用程序,其中包含一个编辑文本和按钮。仅当编辑文本不为空时,按钮才可见。由于我拥有LG Optimums Android设备,每当我点击编辑文本时,因为这是LG设备,LG键盘将出现,但我不想要那个键盘,我想使用Android键盘。我还知道可以进入设置=>语言和键盘,并更改那个键盘。但我不想使用它,我希望只通过编码来完成。
谢谢任何帮助.....
4个回答

17

无法通过编程方式更改用户的键盘设置。 您唯一能做的就是建议用户更改并帮助其进行更改。 例如,这将显示一个对话框,以便他们更改键盘:

private void showInputMethodPicker() {
        InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE); 
        if (imeManager != null) {
            imeManager.showInputMethodPicker();
        } else {
            Toast.makeText(this, R.string.not_possible_im_picker, Toast.LENGTH_LONG).show();
        }
    }

如果我有一个已经root的设备,并且可以将应用程序安装到/system目录下,那该怎么办呢?(尽管我没有固件证书,即无法使用与固件相同的密钥签署我的应用程序) - Alexander Malakhov
1
谢谢!Cristian。我也在寻找同样的东西。 - Abhijit Kurane

2
据我所看到的和一位Android员工在这里所说的,无法通过编程方式改变IME(输入法)- 它完全取决于最终用户选择他们喜欢的IME。

2

像Paul所说,你不能更改IME; 但是,你可以通过隐藏它来禁用Android软键盘

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

然后创建一个类似于Android软键盘的视图。 点击这里查看。

0

在按钮点击时从您的应用程序更改键盘:

             Button keyboard = (Button) findViewById(R.id.keyboardChange);
    keyboard.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view)
        {  InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
            imeManager.showInputMethodPicker();
        }
    });

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