Android: определить активный метод ввода из кода - PullRequest
10 голосов
/ 01 августа 2010

Как определить, какой метод ввода в данный момент активен - Пользователь может изменить метод ввода (программную клавиатуру), нажав и удерживая поле ввода текста - Из кода, как определить, какой метод ввода выбрал пользователь

1 Ответ

23 голосов
/ 20 апреля 2011

Я понимаю, что вам, вероятно, это больше не нужно, но кто-то может захотеть ответа на это. Вы можете использовать эту строку для получения идентификатора строки используемого метода ввода:

String id = Settings.Secure.getString(
   getContentResolver(), 
   Settings.Secure.DEFAULT_INPUT_METHOD
);

Если вы хотите получить больше информации о текущей клавиатуре, вы можете использовать:

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList();

    final int N = mInputMethodProperties.size();

    for (int i = 0; i < N; i++) {

        InputMethodInfo imi = mInputMethodProperties.get(i);

        if (imi.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) {

            //imi contains the information about the keyboard you are using
            break;
        }
    }
...