ios - 在 ios 中检测 Facetime 来电

标签 ios ipad

有没有办法在 ios 中检测来电 Facetime 通话。我尝试了 CTCallCenter,但它似乎只适用于蜂窝电话通话,不适用于 Facetime 通话。我使用以下代码来检测 Facetime 通话,但没有成功。

 self.callCenter = [[CTCallCenter alloc] init];
 self.callCenter.callEventHandler = ^(CTCall* myCall) {
    NSString *call = myCall.callState;
    if ([call isEqualToString:CTCallStateDisconnected])
        NSLog(@"Call has been disconnected");
    else if([call isEqualToString:CTCallStateDialing])
        NSLog(@"Call start");
    else if ([call isEqualToString:CTCallStateConnected])
        NSLog(@"Call has just been connected");
    else if([call isEqualToString:CTCallStateIncoming])
        NSLog(@"Call is incoming");
    else
        NSLog(@"None");
};

有什么帮助吗?

最佳答案

您不需要对每个需要暂停播放的应用进行特定于应用的检测。您应该使用 AVAudioSession检测任何类型的音频中断并通知您的音乐播放器暂停。

请参阅 Apple 文档中的此图片和说明:

enter image description here

AVAudioSession gives you control your app’s audio behavior. You can:

  • Select the appropriate input and output routes for your app

  • Determine how your app integrates audio from other apps

  • Handle interruptions from other apps

  • Automatically configure audio for the type of app your are creating

因此,您可以使用 AVAudioSession API 来处理任何来电,可以是蜂窝电话或 FaceTime 电话,甚至是 Viber、Tango、Line 等任何第三方电话。

您还可以查看 AddMusic示例应用程序以了解其实现方式。

关于ios - 在 ios 中检测 Facetime 来电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722716/

相关文章:

objective-c - iAds 给出 ADInternalErrorCode=3,库存 100% 的时间不可用

ios - 在 Google Analytics 中跟踪来自移动设备主屏幕的流量

ios - 如何使用 StoryBoard 在 iPad 上的 Popover 中显示 UIDatePicker?

iphone - 您可以使用动画 block 缓存 View 吗

objective-c - 是否可以访问App Bundle的en.lproj?

javascript - 来自带有 JSON 字符串的 webview 的 NSString

objective-c - 为什么 Objective-C block 在不将其复制到堆中的情况下仍然有效?

iphone - 在 iPad 中的 iOs 7 iPhone 应用程序中实现 iAd 的正确方法

iphone - ZBarReader二维码检测时间

ios - UIRefreshControl 被自定义 View 隐藏 : how to proceed?