如何获取用户键盘语言



我正在编写一个使用编辑文本的应用程序。我想知道用户在oncreate方法中输入的语言是什么,或者键盘输入类型何时更改。有什么方法可以设置一个监听器来获得这种改变吗?我找到的所有答案都是关于语言环境的,而不是关于输入语言的。我不想处理区域设置,区域设置在应用程序中没有影响,输入语言有影响。我用了这个密码。

private void printInputLanguages() {
    List<InputMethodInfo> ims = imm.getEnabledInputMethodList();
    for (InputMethodInfo method : ims) {
        List<InputMethodSubtype> submethods = imm
                .getEnabledInputMethodSubtypeList(method, true);
        for (InputMethodSubtype submethod : submethods) {
            if (submethod.getMode().equals("keyboard")) {
                String currentLocale =
                submethod.getLocale();
                tv.setText(currentLocale);
                Log.i("sara", "Available input method locale: "
                        + currentLocale);
            }
        }
    }
}

这些代码,但没有一个是完全有用的。

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
    String localeString = ims.getLocale();
    Locale locale = new Locale(localeString);
    String currentLanguage = locale.getDisplayLanguage();

谢谢你的帮助。

没有办法做到这一点。键盘的输入语言没有报告给操作系统——事实上,Android没有输入语言的概念。这是一个由第三方键盘制造商创造的想法。因此,实际上键盘可以用任何语言打字,操作系统根本不知道。

相关内容

  • 没有找到相关文章

最新更新