所以现在我在清单文件中声明了我的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);
}
}
}
然而,当我按下通话按钮时,我看不到吐司。我错过了什么吗?
这是继续使用这个问题的答案......
答案 0 :(得分:4)
简短的回答是,你不能做你想做的事。
'ACTION_CALL_BUTTON'动作是“活动开始动作”而不是“广播动作”。它可以在startActivity
中使用的Intent中使用,以启动应该响应按下的调用按钮的Activity。你想要的是在按下呼叫按钮时得到通知,系统不会广播一个意图来宣布它。
或者,您可以在活动中包含相同的intent-filter
,以便用户在按下呼叫按钮时选择该选项。
当用户按下通话按钮时,您希望做什么?
答案 1 :(得分:1)
根据文档,ACTION_CALL_BUTTON
不是广播操作;相反,这是一项活动行动。
请参阅另一个帖子中的Dianne's message。