【问题标题】:how to get user keyboard language如何获取用户键盘语言
【发布时间】:2016-01-27 19:24:25
【问题描述】:

我正在编写一个使用编辑文本的应用程序。我想知道用户在 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 keyboard android-input-method android-inputtype


    【解决方案1】:

    没有办法做到这一点。键盘的输入语言不会报告给操作系统——实际上 Android 没有输入语言的概念。这是由 3rd 方键盘制造商创造的想法。所以实际上键盘可以用任何语言输入,而操作系统根本不知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-21
      • 2014-10-23
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      相关资源
      最近更新 更多