iphone - 当我返回我的应用程序而不检查状态栏框架时,我如何知道电话何时在通话中?

标签 iphone ios ios4 ios5

我正在使用 UIApplicationWillChangeStatusBarFrameNotification 来告知状态栏何时更改,这确实帮助我弄清楚正在进行的调用何时消失,并且行为符合我的意愿。

但是,在我的应用程序中有一个场景是全屏显示,其中包括隐藏状态栏……除了我不想在通话时隐藏状态栏。

我的理解是,如果我 (a) 接到电话,然后 (b) 返回到我的应用程序,那么首先显示此状态栏的唯一方式。

所以……当我接到电话返回我的应用程序时……没有绿色状态栏。 (首先,当我点击我的应用程序使状态栏和导航栏和标签栏重新出现时,绿色状态栏确实出现了,所以它并不是完全消失了;只是隐藏了,因为我告诉它要隐藏。在模拟器,执行“硬件 -> 切换通话中状态栏”按我希望的方式工作,但我不认为这种行为会在现实世界中以这种方式真正发生。)

我找到了 How do I get notified when a user opens my iPhone app while in a phone call? 的答案…但这只有在我的应用程序重新打开时状态栏可见的情况下才有效。

我想知道当我返回我的应用程序时如何告诉我正在通话,以便我可以在用户查看我的场景时手动取消隐藏绿色状态栏,否则将隐藏状态栏。

因此我的问题是:是否有一个界面可以告诉我这些信息,当我在 applicationDidBecomeActive: 或通过某种其他类型的通知返回应用程序时可以查询这些信息?

最佳答案

您可以使用 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];

关于iphone - 当我返回我的应用程序而不检查状态栏框架时,我如何知道电话何时在通话中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218023/

相关文章:

objective-c - 用户第一次打开应用程序时处理显示登录屏幕的最佳方法是什么?

iphone - ui按钮动画

iphone - 为什么这个 div 不坐在 iphone 的底部?

ios - 尝试将 Facebook SDK 与 Parse 结合使用时出现链接器错误

iphone - 在没有网络服务的情况下练习从 iPhone 调用网络服务?

ios - 在 UITextVIew 编辑为真时检测 NSAttributedString 中附加图像的点击

iphone - 在 iPhone 中重命名应用程序

ios - 如何在 iOS 中创建类似书架的 View ?

ios - 在不使用自动布局的情况下调整 iOS 11 中的条形按钮项目

ios - iPhone 5 有 3 个麦克风。我可以改变我正在录制的那个吗?