在聯繫人應用程序中按通話按鈕時,我想啓動自己的應用程序進行通話。我發現這樣做的唯一方法是用一個接收器來監聽NEW_OUTGOING_CALL廣播。但這很醜陋,意味着所有的電話都是通過我的接收器路由的。打電話給聯繫人時打算啓動應用程序
當時我已經在撥號,呼叫和CALL_BUTTON意圖註冊了多個意向過濾器的那一刻,但沒有火...我在三星Galaxy S7採用Android 7.
在聯繫人應用程序中按通話按鈕時,我想啓動自己的應用程序進行通話。我發現這樣做的唯一方法是用一個接收器來監聽NEW_OUTGOING_CALL廣播。但這很醜陋,意味着所有的電話都是通過我的接收器路由的。打電話給聯繫人時打算啓動應用程序
當時我已經在撥號,呼叫和CALL_BUTTON意圖註冊了多個意向過濾器的那一刻,但沒有火...我在三星Galaxy S7採用Android 7.
正如你所寫:When pressing the call button in the contacts app, I want to launch my own app. . . .
然後But this is ugly and means that all calls are routed through my receiver
,這兩個部分是相反的。 最好的方式(我認爲自從聯繫人應用程序以來唯一一個不是「你的」,它是OS擁有的),就像你用接收器一樣。 我可以建議您在onReceive
方法中添加自定義過濾器(以編程方式),並詢問何時醒來詢問是否請求了聯繫人,然後通過Intent
打開您的應用。
測試我認爲使用廣播接收機實際上是這樣做的推薦方式。實際上不可能改變調用應用程序;這幾乎與操作系統綁定。即使使用根植設備,您也會遇到問題。