2011-10-23 30 views
1

我有一個應用程序,在按下按鈕時可以進行一些調用。 我撥打電話與:如何找出哪個活動啓動了觸發BroadCastReceiver的意圖?

Intent callIntent = new Intent(Intent.ACTION_CALL); 

callIntent.setData(Uri.parse("tel:"+o.getTel())); 
startActivity(callIntent); 

我有一個檢測通話結束的廣播接收機。 但是這個廣播接收機也接收從其他應用程序(例如撥號應用程序)啓動的呼叫。

如何區分從其他應用程序啓動的來電與我的電話啓動的區別?

TNX

回答

0

在打電話前sendBroadcast(意向),添加一個額外的意圖,

例如i.putExtra( 「發件人」, 「我的標識」)

然後在接收器的onReceive

String encodedType = intent.getStringExtra(「sender」);

然後你可以測試這個字符串。

+0

我不明白爲什麼當你啓動你的號碼呼叫者/撥號器活動時,你不能在意圖中傳遞額外的信息,然後在sendBroadcast完成時將其發送回去。其他應用程序不會添加您指定的額外內容。 – NickT

相關問題