1

通話の終了時に通話ステータスを取得する必要がありますが、行のように常に false を返すようにイベントが呼び出されません

[callCenter setCallEventHandler: ^(CTCall* コール)

ここに私のコードがあります

CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call)
{

    if(call.callState == CTCallStateDialing)
    {
        //The call state, before connection is established, when the user initiates the call.
        NSLog(@"Call is dailing");
    }
    if(call.callState == CTCallStateIncoming)
    {
        //The call state, before connection is established, when a call is incoming but not yet answered by the user.
        NSLog(@"Call is Coming");
    }

    if(call.callState == CTCallStateConnected)
    {
        //The call state when the call is fully established for all parties involved.
        NSLog(@"Call Connected");
    }   

    if(call.callState == CTCallStateDisconnected)
    {
        //The call state Ended.
        NSLog(@"Call Ended");
    }

};

どんな助けでも大いに感謝します

4

1 に答える 1

1

あなたのコードは良さそうです。ただし、呼び出しイベント中にアプリが中断された場合、イベント ハンドラーは呼び出されません。

出典: CTCallCenter クラス リファレンス

呼び出しイベントが発生したときにアプリケーションがアクティブである場合、システムはそのイベントをすぐにハンドラーにディスパッチします。ただし、アプリケーションが中断されている間も通話イベントが発生する可能性があります。中断されている間、アプリケーションは通話イベントを受信しません。アプリケーションがアクティブな状態を再開すると、アプリケーションは、アプリケーションが中断されている間にコールの状態が何度変化したかに関係なく、状態が変化した呼び出しごとに 1 つの呼び出しイベントを受け取ります。アプリケーションがアクティブな状態に戻ったときにハンドラーに送信される単一の呼び出しイベントは、その時点での呼び出しの状態を示します。

于 2012-09-28T15:04:12.427 に答える