Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 即使应用程序被终止,也要监视呼叫_Ios_Objective C_Iphone_Ios7_Uibackgroundmode - Fatal编程技术网

Ios 即使应用程序被终止,也要监视呼叫

Ios 即使应用程序被终止,也要监视呼叫,ios,objective-c,iphone,ios7,uibackgroundmode,Ios,Objective C,Iphone,Ios7,Uibackgroundmode,我必须在后台监控通话,即使应用程序被终止,也要发送本地通知。那有什么办法让你继续做那样的事吗?我的意思是超过10分钟。到目前为止,我可以监控通话并发送通知,但只有在不关闭应用程序的情况下。提前谢谢 我是这样做的: - (void)applicationDidEnterBackground:(UIApplication *)application { UIBackgroundTaskIdentifier bgTask = 0; UIApplication *app = [UI

我必须在后台监控通话,即使应用程序被终止,也要发送本地通知。那有什么办法让你继续做那样的事吗?我的意思是超过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];

        }
    }];

}

Foursquare正在使用位置背景模式,在某些情况下,如果应用程序被终止,该模式将重新启动应用程序。然而,没有等效的方法来监控电话。你所能期望的最好的方式就是合法使用其中一种后台模式,使你能够运行你的呼叫监控代码,并在被杀死时重新启动你的应用程序。如果您没有合法使用权,您的应用将被应用商店拒绝

当应用程序被终止时,它不会运行。当一个应用程序没有运行时,它怎么可能做任何事情?如果你实际上不是指被杀,那就把你的术语弄对,准确地描述你的意思。如果你不是指被杀,你是指在幕后被停职吗?我相信对你的问题的简短回答是“不”。iOS有一些后台执行模式,但您的案例不符合这些模式。例如,foursquare,即使您轻触home两次并关闭应用程序,它也知道您在哪里。这正是我想要的,但转向了呼叫监控。Foursquare正在使用位置后台模式,在某些情况下,如果应用程序被终止,它将重新启动。然而,没有等效的方法来监控电话。你所能期望的最好的方式就是合法使用其中一种后台模式,使你能够运行你的呼叫监控代码,并在被杀死时重新启动你的应用程序。如果你没有合法的使用权,你的应用将被应用商店拒绝。@Martin,你回答我的答案。我认为最好的办法是你给出一个答案,因为我标记你是正确的,然后结束这个问题,你不这样认为吗?