我知道這已經被問了很多次,沒有答案,但我仍然希望有人終於解決了這個問題。在Android上檢測到撥出電話
問題:我有一個運行Android 2.3的無根設備。我需要創建一項服務:
- 撥打電話;
- 等待直到通話被應答;
- 呼叫應答後(超時)掛斷電話;
像許多人一樣,我得堅持#2。下面是該解決方案的不斷提出摘要:
- 使用PhoneStateListener(最流行的):不工作,對於呼出它不能檢測我需要什麼。
- 使用
com.android.internal.telephony.CallManager
及其方法如registerForPreciseCallStateChanged
(例如,this one):不起作用,沒有電話註冊在其中,所以事件不會觸發。 - 使用
com.android.internal.telephony.PhoneFactory
獲得com.android.internal.telephony.Phone
實例(這是一切的關鍵):不工作,工廠沒有被初始化;嘗試使用makeDefaultPhones
調用初始化它會導致安全異常(如here)。 - 檢測傳出鈴聲(link):作者 - Dany Poplawec - 指出檢測鈴聲可能有助於解決問題,但沒有提供任何細節,所以我無法嘗試這種技術。
看起來一切都已經嘗試過,但仍可能有一個技巧,將節省我:)
你收到這方面的任何解決方案? – Noundla
唉,看起來除了修改Android操作系統本身之外,沒有什麼可以做的。 –