检查位置警报是否被取消

时间:2013-01-30 15:08:24

标签: iphone ios

如何检查用户是否已响应位置提醒

“应用程序想要使用您当前的位置” 要么 “应用程序希望向您发送推送通知”

我不关心用户选择哪个选项我只需知道警报是否被解除,

3 个答案:

答案 0 :(得分:1)

当用户解除此警报时,您不会直接收到消息,但可以实现CLLocationDelegate的- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status方法。在它和检查CLLocationManager的静态authorizationStatus属性之间,您通常可以确定用户是否已在您的应用中允许位置服务。

答案 1 :(得分:0)

Apple禁止它,所以你不能这样做!

答案 2 :(得分:-1)

编辑:啊哈我现在注意到你用uialertview错误地标记了这个问题。

对于位置提醒,您可以执行以下操作:

- (void)locationManager:(CLLocationManager *)manager
   didFailWithError:(NSError *)error {

    if (error.code ==  kCLErrorDenied) {
        NSLog(@"Location manager denied access - kCLErrorDenied");

        UIAlertView *alert = 
              [[UIAlertView alloc] initWithTitle:@"Location issue" 
                                         message:@"Your location cannot be determined." 
                                        delegate:self 
                               cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
    } 
} 

对于推送通知,您可以这样做(尽管用户可能已经回复了):

UIRemoteNotificationType status = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (status == UIRemoteNotificationTypeNone) {

     NSLog(@"User is not subscribed to receive push notifications");
}