如何将附加内容传递给BroadcastReceiver

时间:2011-03-08 23:40:49

标签: android android-manifest

我将附加内容传递给调用并捕获它们时遇到了问题。

更清楚地说明我打算做什么:

开始通话并为此意图设置额外内容。这就是我目前的代码:

Intent dialIntent=new Intent(Intent.ACTION_CALL, Uri.parse("tel:" +  this.number));
dialIntent.putExtra("foo", true);
startActivity(dialIntent);

我实现了一个BroadcastReceiver来“捕获”这个调用,并希望在启动活动时访问我设置的额外内容。这就是我在我的清单中所拥有的:

<receiver android:name=".CallReceiver">
  <intent-filter android:priority="1">
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
  </intent-filter>
</receiver>

不幸的是,传递给我的CallReceiver的意图是NEW_OUTGOING_CALL意图。

我希望我很清楚我想做什么,希望有可能。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在这里你实际上想要制作另一个“默认拨号器”活动,而不是在这里使用BroadcastReciever,但是这个活动将具有更高的优先级,以确保它将在本机拨号器应用之前启动。然后你可以像这样改变意图:

public void onCreate(Bundle b){
    Intent i = getIntent();
    //alter i here 
    startNextMatchingActivity(i);
}

希望这有帮助!