courte question: Est-il possible (et comment) pour afficher le clavier à l'écran à partir d'un service?Comment afficher le clavier logiciel d'un service?
Question longue: J'ai écrit un service qui crée une "barre supérieure", affichée au-dessus de toutes les activités, contenant un EditText. Je veux afficher le clavier logiciel lorsque l'EditText est cliqué, mais cela ne se produit pas.
Bien sûr, j'ai essayé ceci du onFocusChange de service() et onClick():
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
La solution je suis venu avec est de demander l'activité en cours pour afficher le clavier, en étendant l'activité classe et en ajoutant une interface AIDL. L'inconvénient est que chaque événement clé doit être renvoyé au Service (via une autre interface AIDL) et converti manuellement en Unicode.
De plus, si l'activité actuelle contient un EditText, le clavier virtuel ne fonctionne que pour l'activité et ne montre pas plus quand est sélectionné EditText du service.
Qu'est ce qui empêche clavier à l'écran de service à afficher si l'activité en cours a une EditText? Serait-ce une limitation Android?
avez-vous résoudre ce problème? je suis confronté au même problème –