位置服务关闭通知

时间:2013-12-05 11:46:37

标签: ios objective-c core-location

我的应用使用CoreLocation和应用注册后台位置更新

当用户从设置中关闭位置服务时,我想显示UILocalNotification

iOS 6.1.3 中更低关闭位置服务后,我的应用可以在后台运行代码,因此我可以展示UILocalNotification给用户。

但是在 iOS 7 一旦关闭位置服务我的应用无法在后台执行单行代码。

即使在iOS 7中,我也会注册后台应用程序刷新。

2 个答案:

答案 0 :(得分:4)

如果禁用了服务,您可以设置委托方法并显示UILocalNotification:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;

每次用户在设置中禁用/启用位置服务时都会调用它。 您还可以使用此方法找出已禁用/启用的位置服务

[CLLocationManager locationServicesEnabled]

我没有测试过,但也许你发现它很有用。

答案 1 :(得分:-5)

添加@property(非原子,强)可达性* internetReachable;

然后,在AppDelegate.h文件中

在didFinishedLaunching方法的AppDelegate.m文件中添加以下代码行:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(NetWorkCheangeNoti :) name:kReachabilityChangedNotification object:nil];

internetReachable = [[Reachability reachabilityForInternetConnection] retain]; [internetReachable startNotifier];

在AppDelegate.m中实现该方法,如:

- (void)NetWorkCheangeNoti :(可达性*)信息 {     NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];     开关(internetStatus)     {         case NotReachable:         {

        NSLog(@"The internet is down.");
    }
        break;

    case ReachableViaWiFi:
    {
        //NSLog(@"The internet is working via WIFI");
    }
        break;

    case ReachableViaWWAN:
    {
        //NSLog(@"The internet is working via WWAN!");
    }
        break;

    default:
        break;
}

}

试试这个!! !!