【问题标题】:How to programmatically get current keyboard language on an Android device如何以编程方式获取 Android 设备上的当前键盘语言
【发布时间】:2013-05-10 13:58:23
【问题描述】:

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

【问题讨论】:

标签: android android-layout


【解决方案1】:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();

String locale = ims.getLocale();

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

【讨论】:

  • 不适用于 samsung s5 API 23... 报告 en_US 与选择的键盘语言无关。似乎是在查询系统设置,而不是运行时的实际键盘配置。
  • 返回空字符串
  • 是的,和@nerdy-bunz 说的一样:这只是系统语言。您如何查看选择了哪种键盘布局?当您插入应用程序时,该应用程序会随机分配一个布局,我需要知道它是 en_US 还是我的语言
  • 谷歌键盘,小米的Kika键盘不返回语言代码..怎么办?有什么解决办法吗?
【解决方案2】:

有可能

imm.getCurrentInputMethodSubtype();

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

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

否则你会收到 NullPointerException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多