BroadcastReceiver没有收到意图

时间:2009-12-15 20:53:15

标签: android android-intent broadcastreceiver

所以现在我在清单文件中声明了我的BroastcastReceiver ......

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

我想在按下“呼叫”按钮时捕捉到意​​图。

这是我的代码......

 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);
         }

     }

 }

然而,当我按下通话按钮时,我看不到吐司。我错过了什么吗?

这是继续使用这个问题的答案......

How to use Intents from a Service or Broadcast Receiver?

2 个答案:

答案 0 :(得分:4)

简短的回答是,你不能做你想做的事。

'ACTION_CALL_BUTTON'动作是“活动开始动作”而不是“广播动作”。它可以在startActivity中使用的Intent中使用,以启动应该响应按下的调用按钮的Activity。你想要的是在按下呼叫按钮时得到通知,系统不会广播一个意图来宣布它。

或者,您可以在活动中包含相同的intent-filter,以便用户在按下呼叫按钮时选择该选项。

当用户按下通话按钮时,您希望做什么?

答案 1 :(得分:1)

根据文档,ACTION_CALL_BUTTON不是广播操作;相反,这是一项活动行动。

请参阅另一个帖子中的Dianne's message