3 votes

Paramètres du clavier sur l'émulateur reviennent à la configuration par défaut après redémarrage

Mon émulateur Android 2.3.3 a quatre claviers différents :

  1. Clavier japonais
  2. Clavier chinois
  3. Clavier Android
  4. Clavier Soft d'exemple

Je les décoche tous pour pouvoir utiliser le clavier matériel. Après quelques secondes, un message d'erreur s'affiche indiquant que le processus com.android.inputmethod.latin ne répond pas, avec un bouton Force Close. De plus, je ferme et redémarre mon émulateur pour trouver tous les claviers cochés!

La raison pour laquelle je veux tous les décocher est la suivante :

Lorsque je clique sur le curseur à un endroit où je veux insérer du texte (au moins sur Whatsapp, je rencontre ce problème), le curseur reste là pendant 3 à 10 secondes (!!) puis le clavier s'affiche à l'écran et le curseur revient à sa position initiale ! Ce n'est pas le cas lorsque tous les claviers à l'écran sont désactivés.

Comment puis-je rendre permanent le paramètre de désactivation du clavier ?

MISE À JOUR : C'était au-delà de mon imagination et très ennuyeux. Les méthodes d'entrée autres que le clavier tactile sont de retour et même activées après avoir redémarré l'émulateur ! Pourquoi le SDK refuse-t-il simplement de conserver les paramètres?

3voto

Karthik C Points 629

FAIT : J'ai sauvegardé tout le contenu de mon ancien émulateur, créé un nouvel émulateur en utilisant

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

Pour aider à trouver la bonne valeur de et les valeurs admissibles correspondant de la même manière à votre choix du niveau API, j'ai utilisé

android list targets

Vous verrez alors que l'option Snapshot est disponible lorsque vous modifiez le même AVD à partir du Gestionnaire de périphériques virtuels Android. Donc vérifiez le snapshot. Et lorsque vous lancez, assurez-vous d'avoir coché les options "Lancer depuis un snapshot" et "Enregistrer dans un snapshot". Maintenant utilisez les commandes rm dans le adb shell pour supprimer les IMEs. (Je vais bientôt expliquer comment on fait) Vous fermez et la prochaine fois que vous l'ouvrez via la commande emulator, il charge à partir du snapshot et la permanence des paramètres IME (ou de tout autre paramètre système) est atteinte !

(P.S. : Seulement lorsque vous modifiez la configuration matérielle aurez-vous réellement besoin de redémarrer, auquel cas vous ne pouvez pas lancer à partir du snapshot tel qu'il a été enregistré pour une configuration matérielle différente !)

Comme le question le montre, tout ce que je veux c'est que mon clavier matériel soit actif et je me fiche vraiment des 4 méthodes de saisie là-bas. Il ne m'est jamais venu à l'idée que je pourrais simplement supprimer tous les IMEs : Voici comment :

Montez le dossier /system. Récupérez les noms des apk des IMEs en allant dans /system/app et en affichant son contenu :

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.

Ensuite, il vous suffit de faire

rm .apk

Par exemple, en cas de l'IME japonais, on exécute

rm /system/app/PinyinIME.apk

Comme ce tour de passe-passe, pour moi, n'a pas fonctionné jusqu'à présent pour le clavier virtuel d'exemple :

Je suis sorti de l'adb shell et j'ai fait :

adb uninstall com.example.android.softkeyboard

MISE À JOUR : Une fois que vous êtes sûr que le snapshot a été enregistré correctement (essayez de le lancer à partir du snapshot via le terminal/le gestionnaire AVD, il ne doit pas produire d'erreurs) et que vous ne voulez plus apporter de modifications aux applications système ou aux configurations matérielles, lancez l'émulateur avec l'option -no-snapshot-save :

emulator -no-snapshot-save -avd Andreud

de sorte que vous puissiez lancer à partir du snapshot comme avant et éviter les aberrations qui se produisent lors de l'enregistrement dans le snapshot (au cas où il pourrait produire une erreur disant qu'il a été enregistré pour une configuration matérielle différente). De plus, vous pouvez gagner quelques précieuses secondes nécessaires pour enregistrer le snapshot. De cette manière, votre expérience globale avec l'émulateur Android s'améliore !

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X