如何以编程方式获取Android设备上的当前键盘语言

时间:2013-05-10 13:58:24

标签: android android-layout

我正在编写一个使用词典的应用程序。我希望在用户更改输入语言时切换字典。例如,如果打字语言是英语词典的英语作品,如果是德语,则使用德语词典。有没有办法设置一个监听器来获得这种改变?我找到的所有答案都是关于语言环境而不是输入语言。我不想处理语言环境,语言环境在应用程序中没有效果,输入语言也没有。 (我在minSDK = 7开发)

2 个答案:

答案 0 :(得分:9)

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();

String locale = ims.getLocale();

您可以尝试使用此代码获取当前键盘语言区域代码。

答案 1 :(得分:1)

可能

imm.getCurrentInputMethodSubtype();

返回null值。在这种情况下,你应该像这样检查android系统的语言

Locale.getDefault().getLanguage()        ---> en     

否则您将收到NullPointerException