2014-01-16 55 views
1

我需要知道何時某個意圖(在我的例子中爲ACTION_CALLACTION_CALL_PRIVILEGED,當用戶或應用打電話時會調用)發送時沒有註冊我的活動來處理它。我可以獲悉活動意圖是在沒有註冊活動的情況下發送的嗎

我不想幹涉該意圖的正常處理,即應該處理它的活動仍應以通常的方式處理它(在我的案例中爲OutgoingCallBroadcaster)。

我讀here一個建議,放棄ACTION_CALL_PRIVILEGED意圖併發出另一個意圖,但要避免它。此外,我不希望爲ACTION_CALL使用活動,因爲它會作爲選項出現在意向選擇器中,因此我想讓它對用戶透明並始終工作。

getRecentTasks方法文檔中所述的核心邏輯不建議使用ActivityManager之類的對象,如this

請告訴我,如果這是可能的Android,如果是的話如何。

感謝, Amitai

回答

0

號這是不可能的。如果可能的話,它可以讓我編寫一個應用程序,監控用戶的行爲而不知道它。 ACTION_CALL是Intent以啓動Activity。當然,你可以攔截這個,但這顯然不是你想要做的。

在「呼叫」過程中發送了廣播Intent。你可以監控這些,但你必須註冊才能聽取它們。既然你表示你不想註冊任何聽衆,你幾乎沒有運氣。

這是一件好事,否則人們將能夠編寫一個「NastyWare」應用程序。

+0

非常感謝您的回答,但我只是試圖避免無限循環,當我攔截用戶的電話使用NEW_OUTGOING_CALL [這種方式](http://android-developers.blogspot.co.il/2013/ 05/handling-phone-call-requests-right-way.html),詢問用戶是否想通過我們的電話卡,放棄它併發送帶有修改號碼的新呼叫(例如Prefixer)。如果其他應用程序也使用此機制(如CSipSimple或Sipdroid),則可能會導致無限循環。如果我能夠區分這兩種意圖,我可以防止這種情況發生,但是你是對的,這是不安全的。 –

+0

所以,我將不勝感激,如果你刪除關於我寫「NastyWare」的部分,因爲它不是真的,我只是不知道這個安全問題。 –

+0

我已經改變了我的答案的文本,以免暗示你正在寫「NastyWare」。 –

相關問題