Мониторинг звонков, даже если приложение убито

Я должен отслеживать звонки в фоновом режиме, даже если приложение убито, и отправлять локальное уведомление. Это какой-то способ продолжать делать такие вещи? Я имею в виду за 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];

        }
    }];

}

1 ответ

Решение

Foursquare использует фоновый режим определения местоположения, который при некоторых обстоятельствах перезапускает приложение, если оно было убито. Однако нет никакого эквивалента для мониторинга телефонных звонков. Лучшее, на что вы можете надеяться, - это иметь законное использование возможности использовать один из фоновых режимов, который позволит вам запустить код мониторинга вызовов и перезапустить приложение, когда его убьют. Если у вас нет законного использования, ваше приложение будет отклонено из магазина приложений.

Другие вопросы по тегам