我需要在iOS中编写一个后台应用程序来监听iPhone上的来电。
有可能吗?谁能提出一些好的指示?
三江源
答案 0 :(得分:6)
这将严重违反Apple的隐私政策,并且此类应用无法获得批准。
There are call recording apps that sneak around this restriction, though,但他们使用第三方服务而没有实际的内置iPhone API。
答案 1 :(得分: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.");
}
}
}];
}