2016-12-04 3 views
-1

Je développe une application pour android tv box avec une télécommande IR. Dans mon application, j'ai lancé avec succès un navigateur Web à partir de mon code, et je veux fermer ce navigateur lorsque l'utilisateur appuie sur un bouton de la télécommande IR. J'ai essayé d'attraper l'événement clé en écoutant l'événement clé de répartition dans mon code, mais l'événement clé ne se fait pas attraper. Quelqu'un pourrait m'aider s'il vous plaît à attraper l'événement de presse clé dans ma demande. MerciArrêt d'un navigateur par programmation en lisant une touche matérielle appuyer sur android

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 

    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     if(event.getKeyCode()==170) { 
     // some code 
     } 
    return true; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Intent i = new Intent("android.intent.action.MAIN"); 
    i.setComponent(new ComponentName("org.mozilla.firefox", "org.mozilla.firefox.App")); 
    Bundle b = new Bundle(); 
    b.putBoolean("new_window", true); 
    i.putExtras(b); 
    i.addCategory("android.intent.category.CATEGORY_LAUNCHER"); 
    startActivity(i); 
} 

Répondre

1

Si vous démarrez une nouvelle activité (par exemple Firefox) alors c'est l'activité sur le dessus et celui qui se mise au point et donc les événements clés.

+0

Pourriez-vous suggérer comment obtenir des événements clés lorsque l'utilisateur utilise Firefox? merci .. – user2949215

+0

@ user2949215 Vous ne pouvez pas. Cela fait partie du modèle de sécurité d'Android - les événements clés ne peuvent pas être redirigés ou envoyés par programme à d'autres applications/d'autres applications. Au lieu de cela, vous pouvez lancer votre propre activité avec un WebView, plutôt que d'utiliser le navigateur. –