Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我怎么知道键盘语言?(英/法)_Android - Fatal编程技术网

Android 我怎么知道键盘语言?(英/法)

Android 我怎么知道键盘语言?(英/法),android,Android,我开发了一个短信发送应用程序,我想知道用户使用的语言。所以,当用户键入消息时,我如何知道他/她使用的语言?无法检索当前的键盘语言。Android不允许检索当前配置的语言,没有任何API。使用以下方法获取输入类型管理器: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 然后,使用以下方法选择要从中获取的内容: 或: 与此一起获取输入类型的区域设置: 您可

我开发了一个短信发送应用程序,我想知道用户使用的语言。所以,当用户键入消息时,我如何知道他/她使用的语言?

无法检索当前的键盘语言。Android不允许检索当前配置的语言,没有任何API。

使用以下方法获取输入类型管理器:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
然后,使用以下方法选择要从中获取的内容:

或:

与此一起获取输入类型的区域设置:


您可以通过首先检测设备键盘的区域设置,然后从中获取
locale
对象来获取键盘语言。比如说,

    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();

这里,
currentLanguage
将为您提供键盘语言。希望这有帮助。

嗨,伙计,这个解决方案在API 11中可用,我想在android 2.3中使用它!如何在API 11.0之前使用您的低版本想法。这是一个很好的观点。很抱歉错过了。也许可以从android代码中读取,看看是否有办法克服旧版本的错误。当ims为空时,我们应该怎么做?