我正在开发一个应用程序,在这个应用程序中,我需要允许用户根据请求或默认情况更改默认键盘中显示的输入键,例如,我可以在开始时提示用户选择默认语言,然后在使用默认键盘时,应用程序总是显示所选语言的键盘键,
我知道这是可能的,因为在默认的键盘应用程序中,当选择多个输入法时,长按空格键可以在运行时更改输入法,如果这是可能的,那么我的要求也是可能的。。。
我不想像下面这样提示输入默认键盘:
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();
我不想一直更改区域设置并重新启动我的活动,例如:
Resources res = getBaseContext().getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("ru".toLowerCase());
res.updateConfiguration(conf, dm);
Log.i("inside onStart","after ever");
setContentView(R.layout.activity_main);
我只想用我想要的语言显示键盘输入。
2条答案
按热度按时间ecr0jaav1#
只有在应用程序作为系统应用程序运行时(出于安全原因),才可以在不通知用户的情况下更改键盘。
您需要首先在应用程序的androidmanifest.xml中授予android权限
然后需要确定键盘的id。
->要知道id,您需要手动将键盘默认设置为“设置菜单”,然后将此打印放在某个位置,
一旦你打印了id并且知道了你的键盘id,你就可以按照下面的步骤操作了(我已经把我的默认键盘改成了日语)
好好享受!!
0wi1tuuw2#
在这里做了一些研究,那里找到了答案,首先你要创建一个自定义的键盘视图,它扩展了keyboardview,并在其中创建静态键值变量,如
之后,在实现inputmethodservice的ime类中,在oninitializeinterface override函数内创建键盘。喜欢
在此之后,在onkey override功能中将这些最终静态键添加为开关盒,并在这些盒中相应地设置键盘: