2010-04-30 4 views
14

У меня есть приложение, в котором я хотел бы предупредить пользователя, если он не использует стандартную программную клавиатуру Android. (т. е. они используют Swype или что-то еще).Как определить текущий IME в Android?

Как проверить, какой метод ввода они выбрали в настоящее время?

ответ

24

Вы можете получить IME по умолчанию, используйте:

Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); 
+0

It не работает для меня :( Он возвращает null –

5

InputMethodManager имеет getEnabledInputMethodList(). Вы получаете InputMethodManager от getSystemService() в своем Activity.

+0

Я видел, что и возвращает список методов ввода, которые доступны пользователю, - но я не могу показаться, чтобы выяснить, как определить, какие в настоящее время выбран один. – jkhouw1

+0

К сожалению, единственное, что я могу сейчас подумать, это проверить длину списка, возвращаемого getEnabledInputMethodList, и если> 2, предупредите их, что они _may_ имеют проблему, если они не используют IME по умолчанию. У кого-нибудь есть другие указатели/идеи? – jkhouw1

+0

Возможно, вам стоит открыть новый вопрос о проблеме, которую, по вашему мнению, вы испытаете с пользователями с помощью Swype, и выяснить, как это исправить. В конце концов, я подозреваю, что диапазон «default IME» будет расширяться по мере того, как Android перейдет на другие рынки (например, телевизоры/телевизионные приставки). Следовательно, я бы порекомендовал нам выяснить, как получить его, чтобы вам было все равно, что они используют. – CommonsWare

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