2012-08-02 2 views
2

Mon application envoie des données à d'autres applications. Parfois, l'autre application ouvre un clavier logiciel, mais ne le ferme pas. Le problème est que, après la reprise de mon application, je suis incapable de fermer ce clavier comme dans les cas sofware normales dans mon application:Masquer le clavier logiciel après la reprise d'une autre application

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(view.getWindowToken(), 0); 

J'ai essayé aussi view.getApplicationWindowToken() et divers indicateurs sans succès. Comment puis-je fermer un clavier logiciel, qui a été ouvert par une application différente?

Répondre

0

Ceci est juste une supposition, mais pouvez-vous faire quelque chose comme obtenir le ActivityManager, trouver la dernière activité qui a été exécutée, puis comprendre que c'est Window Token?

Je ne sais pas si c'est possible, mais j'espère que cela vous met sur la bonne voie.

Activité code manager (je sais que c'est presque aucune aide):

// get the ActivityManager 
ActivityManager result = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 

EDIT:

Je dois souligner que c'est vraiment pas ce que le ActivityManager est là pour ... de sorte qu'il pourrait mettre fin à être une sorte de solution hack-y pour creuser dans les fenêtres d'une autre activité ...

Questions connexes