0

Я пишу приложение, которое использует текст редактирования. I хочу знать, что пользователь вводит язык в методе 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(); 

спасибо за помощь ур.

+0

im using api 16 – saeed

ответ

0

Невозможно сделать это. Язык ввода клавиатуры не сообщается ОС - на самом деле у Android нет концепции входного языка. Это была идея, созданная сторонними производителями клавиатур. Так что действительно клавиатура может печатать на любом языке, и ОС не имеет понятия.

+0

спасибо за ответ @gabe sechan – saeed

Смежные вопросы