我需要在 iOS 中编写一个后台应用程序来监听 iPhone 上的来电。
可能吗?任何人都可以提出一些好的建议吗?
谢谢
这将非常违反 Apple 的隐私政策,这样的应用程序不可能获得批准。
不过,有一些通话录音应用程序可以绕过这个限制,但它们使用第三方服务并且没有实际的内置 iPhone API。
您可以使用 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.");
}
}
}];
}