0

即使应用程序被杀死并发送本地通知,我也必须在后台监视呼叫。有没有办法继续做这样的事情?我的意思是超过10分钟。到目前为止,我可以监控通话并发送通知,但只能在没有杀死应用程序的情况下。先谢谢了。

这是我的做法:

- (void)applicationDidEnterBackground:(UIApplication *)application
{

    UIBackgroundTaskIdentifier bgTask = 0;

    UIApplication  *app = [UIApplication sharedApplication];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
    }];

    [self startMonitoringCalls];
}

-(void)startMonitoringCalls
{

    callCenter = [[CTCallCenter alloc] init];

    [callCenter setCallEventHandler:^(CTCall *call) {
        if ([[call callState] isEqual:CTCallStateConnected]) {
            NSLog(@"Get called");
        } else if ([[call callState] isEqual:CTCallStateDisconnected]) {

            UILocalNotification *notification = [[UILocalNotification alloc] init];
            notification.fireDate = [NSDate date];
            notification.alertBody = @"Would you like to...";
            [[UIApplication sharedApplication] scheduleLocalNotification:notification];

        }
    }];

}
4

1 回答 1

0

Foursquare 正在使用位置后台模式,在某些情况下,如果应用程序被杀死,它将重新启动应用程序。但是,没有等效的监控电话。您可能希望的最好结果是能够合法地使用其中一种后台模式,使您能够运行呼叫监控代码并在被终止时重新启动您的应用程序。如果您没有合法使用,您的应用将被应用商店拒绝。

于 2014-04-29T21:20:15.237 回答