3 votos

Configuración del teclado en el emulador se devuelve al reiniciar

Mi emulador de Android 2.3.3 tiene cuatro teclados diferentes:

  1. Teclado japonés
  2. Teclado chino
  3. Teclado de Android
  4. Teclado suave de ejemplo

Desmarco todos para poder usar el teclado físico. Después de unos segundos, muestra un mensaje de error que dice que el proceso com.android.inputmethod.latin no responde, con un botón Forzar cierre. Además, cierro y reinicio mi emulador para encontrar todos los teclados marcados nuevamente.

La razón por la que quiero que todos estén desmarcados es la siguiente:

Cuando hago clic en el cursor en la posición donde quiero insertar texto (por lo menos en Whatsapp, enfrento este problema), ¡el cursor permanece allí durante 3 a 10 segundos (!!) y luego aparece el teclado en pantalla y el cursor vuelve a donde estaba! Esto no sucede cuando todos los teclados en pantalla están deshabilitados.

¿Cómo puedo hacer que el ajuste de deshabilitar el teclado sea permanente?

ACTUALIZACIÓN: Esto estaba más allá de mi imaginación y muy molesto. ¡Los métodos de entrada que no sean el teclado suave volvieron e incluso se activaron una vez reinicié el emulador! ¿Por qué el SDK se niega a mantener los ajustes??

3voto

HECHO: Hice una copia de seguridad de todos mis contenidos de mi antiguo emulador, creando un nuevo emulador usando

android create avd -t -n -a --abi

Para ayudar a encontrar el valor correcto de y los valores admisibles correspondientes según su elección del nivel de API, utilicé

android list targets

Luego verá que la opción de Snapshot está disponible cuando edite el mismo AVD desde el Administrador de Dispositivos Virtuales de Android. Así que revise el snapshot. Y cuando lo inicie, asegúrese de haber marcado las opciones "Iniciar desde el snapshot" y "Guardar en snapshot". Ahora use los comandos rm en la adb shell para eliminar los IMEs. (Explicaré pronto cómo se hace eso) Cierre y la próxima vez que lo abra a través del comando emulator, se cargará desde el snapshot y se logrará la permanencia de la configuración del IME (o cualquier otra configuración del sistema)!

(P.D .: Solo cuando cambie la configuración de hardware necesitará reiniciar realmente, ¡en cuyo caso no podrá iniciar desde snapshot ya que se guardó para una configuración de hardware diferente!)

Como indica la pregunta, todo lo que quiero es que mi teclado físico esté activo y realmente no me importan los 4 métodos de entrada allí. Nunca se me ocurrió que podría simplemente eliminar todos los IMEs: Así es cómo:

Monta la carpeta /system. Recupere los nombres de apk de los IMEs yendo a /system/app y mostrando su contenido:

aneesh@nb-14:~$ adb shell mount -rw -o remount /dev/block/mtdblock0 /system
aneesh@nb-14:~$ adb shell
# cd /system/app
# ls
Phone.apk
Development.apk
Email.apk
Calculator.apk
...
..
etc.

Luego simplemente haz

rm .apk

Por ejemplo, en el caso del IME japonés se ejecuta

rm /system/app/PinyinIME.apk

Dado que este truco, para mí, no funcionó hasta ahora para el teclado suave de muestra:

Saqué la adb shell e hice:

adb uninstall com.example.android.softkeyboard

ACTUALIZACIÓN: Una vez que se asegure de que el snapshot se ha guardado correctamente (intente lanzar desde snapshot a través de terminal/Administrador de AVD, no debe producir errores) y no desea hacer más cambios en las aplicaciones del sistema o configuraciones de hardware, lance el emulador con la opción -no-snapshot-save:

emulator -no-snapshot-save -avd Andreud

para que pueda iniciar desde snapshot como antes y evite aberraciones que ocurren al guardar en snapshot (para que no produzca un error diciendo que se guardó para una configuración de hardware diferente). Además, puede ahorrar unos valiosos segundos que lleva guardar el snapshot. ¡De esta manera, mejora su experiencia general con el emulador de Android!

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X