2010-02-04 17 views

Répondre

2

Il n'existe aucun moyen de remplacer complètement le comportement du bouton d'appel sans intervention de l'utilisateur. En appuyant dessus, l'utilisateur devra choisir entre l'action par défaut (lancer le numéroteur) ou lancer votre application.

Si vous voulez faire cela, votre manifeste ressemblerait à quelque chose comme ceci:

<activity android:name=".SomeActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.CALL_BUTTON" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
+0

Merci pour cette Christopher qui donne la possibilité de démarrer mon activité mais ce que je veux arriver: L'utilisateur clique vert clé pour faire apparaître le dialer natif, ils composent un appel, mon application le détecte et ouvre une boîte de dialogue disant qu'il a détecté et appel sortant je veux ensuite que l'utilisateur soit en mesure d'appuyer sur la maison ou de naviguer loin de la boîte de dialogue dans le retour à la terre et puis quand ils pressent la touche verte le dialogue se concentre à nouveau sur le premier plan.Alors je veux seulement attraper la clé verte lorsque mon activité est déjà en cours et je veux l'ignorer si mon activité ne fonctionne pas est-ce possible? –

+1

Non. En appuyant sur le bouton d'appel, le framework appelle 'startActivity()' et cherche donc une activité à démarrer. Dans ce cas, le vôtre pourrait potentiellement démarrer en raison du filtre d'intention XML ci-dessus. Vous ne pouvez pas décider conditionnellement de gérer l'intention à partir d'un appel 'startActivity()'. –

+0

Donc, je ne peux pas changer quand mon activité veut être une option de la clé verte et quand ce n'est pas le cas? –