2010-04-30 17 views
14

Tengo una aplicación donde me gustaría advertir al usuario si no están utilizando el teclado predeterminado de Android. (es decir, están usando Swype o alguna otra cosa).¿Cómo determinar el IME actual en Android?

¿Cómo puedo verificar qué método de entrada han seleccionado actualmente?

Respuesta

24

Usted puede obtener un IME predeterminado, utilice:

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

It no funciona para mí :( Devuelve null –

5

InputMethodManager tiene getEnabledInputMethodList(). Obtienes un InputMethodManager de getSystemService() en tu Activity.

+0

vi eso y que devuelve una lista de métodos de entrada que están disponibles para el usuario - pero me parece que no puede encontrar la manera de determinar qué uno está actualmente seleccionado. – jkhouw1

+0

Desafortunadamente, lo único que puedo pensar ahora es verificar la longitud de la lista devuelta por getEnabledInputMethodList y, si> 2, advertirles que pueden tener un problema si no están utilizando el IME predeterminado. Alguien tiene otros consejos/ideas? – jkhouw1

+0

Puede considerar la posibilidad de abrir una nueva pregunta sobre SO sobre el problema que cree que experimentará con usuarios que usan Swype, y descubrir cómo solucionarlo. Después de todo, sospecho que el rango de "IME predeterminado" se expandirá a medida que Android se mueva a otros mercados (por ejemplo, televisores/decodificadores). Por lo tanto, realmente recomendaría que averigüemos cómo obtenerlo para que no le importe qué IME están usando. – CommonsWare

Cuestiones relacionadas