2017-01-03 2 views
1

私は自分のアプリから携帯電話のタイミングを取得したいと思います。コールが接続されるとすぐにコールの開始時刻を取得しますが、コールが終了して開始時刻ブロックが実行され、callStartTimeプロパティが上書きされます。着信コールでも同じことが起こります(コンソールログのスクリーンショットからわかるように)。私は電話をかけてアプリに戻るためにtelprompt://を使用しています。これはバグですか?CXCallObserverは、applicationDidBecomeActiveが呼び出されるたびにデリゲートメソッドを起動しますか?

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

関連する問題