我的应用使用CoreLocation
和应用注册后台位置更新。
当用户从设置中关闭位置服务时,我想显示UILocalNotification
。
在 iOS 6.1.3 中更低关闭位置服务后,我的应用可以在后台运行代码,因此我可以展示UILocalNotification
给用户。
但是在 iOS 7 一旦关闭位置服务我的应用无法在后台执行单行代码。
即使在iOS 7中,我也会注册后台应用程序刷新。
答案 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;
}
}
试试这个!! !!