2009-12-15 16 views
1

Alors maintenant, j'ai mon BroastcastReceiver déclaré dans le fichier manifeste ...BroadcastReceiver ne recevant pas l'intention

<receiver android:name=".MyReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.CALL_BUTTON" /> 
    </intent-filter> 
    </receiver> 

Je veux attraper l'intention lorsque le bouton d'appel est enfoncé.

Voici mon code ...

public class MyReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Toast.makeText(context, "intent received", Toast.LENGTH_LONG); 

     if(intent.getAction().equals("android.intent.action.CALL_BUTTON")) { 
      Toast.makeText(context, "call button pressed", Toast.LENGTH_LONG); 
     } 

    } 

} 

Cependant, je ne vois pas le pain grillé quand je frappe le bouton d'appel. Ai-je manqué quelque chose?

Ceci est la suite en utilisant une réponse à cette question ...

How to use Intents from a Service or Broadcast Receiver?

Répondre

4

La réponse courte est que vous ne pouvez pas faire ce que vous essayez de faire. L'action 'ACTION_CALL_BUTTON' est une "action de démarrage d'activité" plutôt qu'une "action de diffusion". Il peut être utilisé dans une intention utilisée dans startActivity pour lancer une activité qui devrait répondre au bouton d'appel appuyé. Ce que vous voulez, c'est être averti lorsque vous appuyez sur le bouton d'appel, et le système ne diffuse pas d'intention de l'annoncer.

Vous pouvez également inclure le même intent-filter sur une activité pour qu'elle apparaisse en tant qu'option à sélectionner par l'utilisateur lorsqu'il appuie sur le bouton d'appel. Qu'espérez-vous faire lorsque l'utilisateur appuie sur le bouton d'appel?

+0

Encore une fois, vous êtes venu à la rescousse. C'est exactement ce que je voulais faire en premier lieu ... ouvrir une activité lorsque le bouton d'appel est enfoncé. –

1

par les docs, ACTION_CALL_BUTTON est pas une action de diffusion; c'est plutôt une action d'activité.

Voir Dianne's message à ce propos dans un autre fil de discussion.

+0

Merci. Il n'y a donc aucun moyen de lancer mon activité lorsqu'un utilisateur appuie sur le bouton Appeler? –

+1

Désolé, je n'ai pas élaboré plus loin. Reto l'a couvert :-) –