Закрыть приложение, требующее услуги определения местоположения, если пользователь выбирает «Не разрешать»? - PullRequest
1 голос
/ 03 июня 2011

У меня есть приложение, основная функциональность которого вращается вокруг использования текущего местоположения пользователя.Он показывает объекты рядом с пользователем на карте.Я не создаю менеджер местоположения, я просто использую карту.Это работает хорошо, но теперь я пытаюсь убедиться, что мое приложение правильно предупреждает пользователя о том, что оно нуждается в сервисах определения местоположения.Сейчас я создаю новый менеджер местоположений в методе applicationDidBecomeActive и пытаюсь начать обновление, чтобы инициировать запрос разрешения от пользователя всякий раз, когда приложение открывается или возвращается из фона с отключенными службами определения местоположения, как это:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    if([CLLocationManager locationServicesEnabled])
    {
        NSLog(@"yes");
    }
    [manager startUpdatingLocation];
}

Вопрос 1: Это хороший способ сделать это?

Вопрос 2: Поскольку каждый аспект моего приложения используетLocation-Services было бы целесообразно закрыть приложение, если пользователь выбирает «Не разрешать», когда ему предлагают, чтобы мое приложение хотело использовать Location-Services?

Любые другие советы из опыта работы сУслуги по размещению информации, а также уведомления и запросы пользователей будут приветствоваться.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Вы не можете "закрыть" приложение - Apple не позволяет его, и на самом деле нет никакого открытого API для "выхода".

Вместо этого вы можете получить представление, занимающее весь экран, объясняющее сбои в работе без разрешения CoreLocation. Может быть, даже с кнопкой, заставляющей CLLocationManager снова запрашивать их разрешение.

0 голосов
/ 03 июня 2011

Запрещается закрывать приложение программным способом, и это может привести к его отклонению.

...