2017-01-03 71 views
1

所以我想從我的應用程序中獲取蜂窩通話的時間。一旦通話連接,我就可以獲得通話的開始時間,但是當通話結束時,我也會獲得開始時間塊,這會覆蓋我的callStartTime屬性。來電也會發生同樣的情況(正如您可以從附加的控制檯日誌截圖中看到的那樣)。我正在使用telprompt://撥打電話並返回到應用程序。這是一個錯誤?每當呼叫改變每次調用applicationDidBecomeActive時,CXCallObserver都會觸發委託方法?

call.hasConnected is called while ending cellular call

回答

1

CXCallObserver委託方法被調用,並且如果/當呼叫結束時,呼叫連接,然後稍後被調用一次。 hasConnectedhasEnded屬性應分別解釋爲「已連接」和「已連接」。

因此,我建議使用邏輯像這樣:

if (call.hasConnected) { 
    if (!call.hasEnded) { 
     // record start time (unless start time has already been recorded) 
    } else { 
     // record end time (unless end time has already been recorded) 
    } 
} 
+1

是的,你說得對。這就是我最終做到的(http://imgur.com/a/4Dgza)。有另一個BOOL變量,我可以用它來標記呼叫狀態。 – Manjuhere

相關問題