2010-01-20 57 views
5

我的查詢是,如果在我打出電話時對方接收方接聽我的電話,我希望得到通知。是否可以使用Android SDK。打出電話狀態

onCallStateChanged函數僅在人員從他的電話撥打號碼(OFFHOOK)時調用,並且當呼叫接收者斷開呼叫(IDLE),但沒有狀態參數可知時,另一個最終用戶已收到電話?

public class MyPhoneStateListener extends PhoneStateListener{ 

    public void onCallStateChanged(int state,String incomingNumber){ 
     Log.d("Checking---->",TelephonyManager.ACTION_PHONE_STATE_CHANGED); 
    } 
} 

logcat中只給出了以下信息調用時收到的另一面:

01-19 19:33:30.633: DEBUG/CallNotifier(638): stopRing()... (OFFHOOK state) 
01-19 19:33:30.662: DEBUG/Ringer(638): stopRing()... 
01-19 19:33:30.694: DEBUG/Ringer(638): - stopRing: null mRingHandler! 
01-19 19:33:31.256: DEBUG/PhoneApp(638): updateWakeState: callscreen true, dialer false, speaker false... 
01-19 19:33:31.287: DEBUG/PhoneApp(638): updateWakeState: keepScreenOn = false (isRinging false, showingDisc false) 

回答

1

我有同樣的問題。我使用PhoneStateListener進行傳入呼叫,它運行良好。但對於傳出的呼叫,我只能夠註冊一個BroadcastReceiver到intent android.intent.action.NEW_OUTGOING_CALL。

據我所知,沒有辦法確定另一方已經拿起或者沒有拿到的天氣。但是,您可以使用CallLog來脫機檢索呼叫信息。除非您編譯自己的Andoid,否則詳細的調用狀態事件只能通過內部類com.android.internal.telephony.Phone獲得,您無法訪問它們。

+2

這沒有意義。製造商知道通話何時連接。如果它對他們有用,它就可以提供給你。 – 2012-08-21 19:14:42

+2

@RKS是的,這是有道理的。在撥號器撥打電話後,撥出呼叫狀態立即從'CALL_STATE_IDLE'變爲'CALL_STATE_OFFHOOK',即使合作伙伴尚未拿起手機。 – 2012-11-13 10:37:41