0

我需要在 iOS 中编写一个后台应用程序来监听 iPhone 上的来电。

可能吗?任何人都可以提出一些好的建议吗?

谢谢

4

2 回答 2

6

这将非常违反 Apple 的隐私政策,这样的应用程序不可能获得批准。

不过,有一些通话录音应用程序可以绕过这个限制,但它们使用第三方服务并且没有实际的内置 iPhone API。

于 2012-06-05T04:21:31.703 回答
4

您可以使用 CTCallCenter 的 CTCallState 属性在 applicationWillEnterForeground 中执行此操作。不要忘记导入 CoreTelephony 框架。这是一个例子:

#import <CoreTelephony/CTCall.h>
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [callCenter setCallEventHandler:^(CTCall *call) {
        if ([[call callState] isEqual:CTCallStateIncoming] || [[call callState] isEqual:CTCallStateDialing]) {

            if ([viewController isPlaying])
            {
                NSLog(@"Call was started.");
            }
        } else if ([[call callState] isEqual:CTCallStateDisconnected]) {
            if (callWasStarted)
            {
               NSLog(@"Call was ended.");
            }
        }
    }];
}
于 2014-03-26T11:15:20.623 回答