2017-08-16 76 views
0

我想在應用程序中記錄我的呼叫。我在廣播接收器中使用TelephonymanageronCallStateChanged如何獲得傳出通話開始通話時間?

因此,我們有三種狀態:

TelephonyManager.CALL_STATE_RINGING 
TelephonyManager.CALL_STATE_OFFHOOK 
TelephonyManager.CALL_STATE_IDLE 

當我開始呼出,與CALL_STATE_OFFHOOKonCallStateChanged被調用。然後我等待答案。當一個人接聽電話時,對話開始,但是onCallStateChanged不會被這3個狀態中的任何一個觸發。如何獲得確切的時間,當我們開始講話?

+0

當一個人真的拿起電話時沒有任何事件被觸發。目前只有這些事件是不可能的。 –

回答

0

這是不可能的,除非您的應用程序是設備上的默認電話應用程序。

如果你的應用程序是一個手機應用程序,用戶手動將其設置爲默認的手機應用程序,並且您的應用程序還實現InCallService處理呼入電話屏幕。

您將在InCallService實現獲得包含這些信息Call類型的對象(這樣你就可以切換屏幕上的UI當這樣的事件發生。

這是不可能得到,如果你的Call對象'不是默認的電話應用程序恕我直言。