2011-09-01 20 views
12

Tengo un problema extraño al hacer que el teclado no funcione correctamente.El teclado de Android no funciona

Mi aplicación no tiene una sola vista EditText, o usa el teclado de alguna manera, pero de alguna manera después de instalar mi aplicación en varios dispositivos, trabajar con ella y luego volver a usar el dispositivo, el teclado virtual deja de funcionar , y está volviendo loco ...

Lo que el usuario ve es que cuando hace clic en un botón de caracteres en el teclado virtual no se muestra nada en EditText para cada aplicación. Como dije, el extraño problema afecta a todo el sistema y el usuario no puede escribir nada.

Mi aplicación contiene todo tipo de características, todo funciona con API standered, por lo que no entiendo cómo puedo causar esto, o al menos desencadenarlo.

Cuando el teclado no está funcionando y el usuario haga clic en los botones del teclado se puede ver en el Logcat:

WARN/IInputConnectionWrapper(1628): sendKeyEvent on inactive InputConnection 
WARN/IInputConnectionWrapper(1628): getCursorCapsMode on inactive InputConnection 
WARN/IInputConnectionWrapper(1628): endBatchEdit on inactive InputConnection 

cómo un InputConnection puede llegar a ser inactivo y hay una manera para activarlo?

Me preguntaba si alguien tenía este tipo de problema y ¿cuál fue la causa de eso?

+0

No importa si puedes compartir el código, por favor, ¿realmente quiero ver qué causa ese problema? – ingsaurabh

+0

Experimenté algo similar antes, pero estaba usando swype beta, y era un problema de la aplicación swype, no de una aplicación externa. ¿Estás seguro de que es tu aplicación la que está causando esto, y los usuarios que experimentan problemas usan el teclado predeterminado del sistema o un teclado personalizado? Podría resolverlo cada vez alternando una vez desde swype a default y de regreso a swype. – Marmoy

+0

hola envíame el archivo de código lo comprobaré – Narasimha

Respuesta

-3

1) Ha intentado anular el onPause y matando a las firmas de su aplicación con:

System.runFinalizersOnExit(true); 
System.exit(1); 

Tengo curiosidad por si esto no ayuda, ¿puede realmente probar que es su aplicación que está causando el HangUp?

2) ¿Implementas cualquier tipo de InputConnection por tu cuenta?

, aunque no lo que podría ser su aplicación colgando uno de ellos por alguna razón, esta cita de here podría tener algo que ver con su problema, así (foco):

* Sólo el cliente activa de InputConnection aceptará operaciones. El IMF le dice a cada proceso del cliente si está activo, y el marco exige que en los procesos inactivos se ignore las llamadas al InputConnection actual. Esto garantiza que el IME actual puede solo entregar eventos y ediciones de texto a la interfaz de usuario que el usuario ve como en foco.

5

Parece que su conexión de entrada no se ha cerrado correctamente. Tuve problema similar y lo arreglaron en el siguiente manera:

EditText editTextLogin = (EditText) findViewById(R.id.editTextLogin); 
editTextLogin.requestFocus(); 
InputMethodManager inputManager = (InputMethodManager)context.getSystemService(INPUT_METHOD_SERVICE); 
inputManager.restartInput(editTextLogin); 
3

tuve el mismo problema con mi Nexus 7 y S3. Creé la aplicación con Android 4.4. Por lo general, el teclado no aparece por primera vez o si oculto el teclado nunca más apareció. La fuente del problema fue android:textIsSelectable="true". Si eliminé todos mis editText, este error desapareció.

+0

Esto me ayudó a superar" endBatchEdit en InputConnection inactivo ", al llamar a EditText.setTextIsSelectable (falso) al ocultar el teclado y no querer que regrese para ese campo. – delrocco

1

Tuve un problema similar en algunos dispositivos.Después de 2 días de cambiar mi código, encontré que la fuente del problema es la línea android:selectAllOnFocus="true" en mi EditText