0

私はUIApplicationWillChangeStatusBarFrameNotificationを使用して、ステータスバーがいつ変更されるかを通知しています。これは、進行中の呼び出しがいつ消えるかを把握するのに役立ち、動作は希望どおりです。

ただし、私のアプリには全画面表示のシーンが 1 つあります。これには、ステータス バーを非表示にすることも含まれます。ただし、通話中にステータス バーを非表示にしたくない場合を除きます。

私の理解では、このステータスバーが最初に表示される唯一の方法は、(a) 電話がかかってきてから (b) アプリに戻る場合です。

だから…電話を受けてアプリに戻ると…緑色のステータスバーがありません。(fwiw、アプリをタップしてステータスバーとナビゲーションバーとタブバーを再表示すると、緑色のステータスバーが表示されるので、完全になくなったわけではありません。非表示にするように指示したため、非表示になっているだけです。シミュレーターは、「ハードウェア -> 通話中ステータス バーの切り替え」を実行して、私が望むように動作しますが、この動作が現実の世界で実際にこのように発生するとは思いません。)

通話中にユーザーが iPhone アプリを開いたときに通知を受け取るにはどうすればよいですか?への回答を見つけました。…しかし、アプリを再度開いたときにステータスバーが表示されている場合にのみ機能します。

アプリに戻ったときに通話中であることを伝える方法を知りたいので、ユーザーがシーンを見ているときに緑色のステータスバーを手動で再表示できます。そうしないと、ステータスバーが非表示になります。

したがって、私の質問は次のとおりです: applicationDidBecomeActive: または他の種類の通知を介してアプリに戻ったときにクエリできるこの情報を伝えるインターフェイスはありますか?

4

1 に答える 1

2

CTCallCenter を使用して、現在のセル コールがあるかどうかを調べることができます。また、セルの状態の変化について通知されるように、このクラスにハンドラーを登録します。

    CTCallCenter *callCenter = [[CTCallCenter alloc] init];

    // If no calls are in progress, the value of this property is nil.
    if ([callCenter currentCalls] != nil) {
        ... call present...
    }
    [callCenter release];
于 2012-06-27T01:46:26.573 に答える