2011-03-08 52 views
2

我有路過羣衆演員電話和趕上他們的一個問題。如何額外傳遞給廣播接收器

爲了更清楚我打算做:

開始呼叫併爲此目的設置附加功能。這就是我現在的這個代碼如下所示:

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

而不是在這裏使用BroadcastReciever你真的想再拍「默認撥號器」的活動,但是這其中將有更高的優先級,以確保其原生撥號應用程式前推出。然後你可以像這樣改變意圖:

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

希望這有助於!

+0

我加入NEW_OUTGOING_CALL作用線這條線以上: '<動作機器人:名稱=「android.intent.action.CALL」 />' 但它仍然不工作,我只接收NEW_OUTGOING_CALL動作 – 2011-03-08 23:59:47

+0

@Zoran Zaric嘗試添加'<類機器人:名字=「android.intent.category.DEFAULT」 />'以及 – schwiz 2011-03-09 01:37:14

+0

@Zoran Zaric對不起,我不知道我在想什麼。接收者不會選擇這個,因爲你正在調用startActivity而不是sendBroadcast。你想在這裏完成什麼?你想攔截所有的電話或只是從你的應用程序製作的電話? – schwiz 2011-03-09 02:31:57