Ios 电池电量不足时,如何暂停(并恢复)后台位置监控?

Ios 电池电量不足时,如何暂停(并恢复)后台位置监控?,ios,iphone,cllocationmanager,Ios,Iphone,Cllocationmanager,我正在为iOS 7.1(iPhone)编写一个位置跟踪应用程序,当电池电量低于30%时,需要停止或暂停后台位置监控。当电池电量增加时,应在后台恢复位置监控。我该怎么做?我正在使用重要的位置更改更新(CLLocationManager API方法)进行后台位置监视 谢谢 根据 如果您启动此服务,并且您的应用程序随后 终止后,系统会自动将应用程序重新启动到 新事件到达时的背景。在这种情况下,选项 传递给应用程序的字典:didFinishLaunchingWithOptions: 应用程序委托的方法包

我正在为iOS 7.1(iPhone)编写一个位置跟踪应用程序,当电池电量低于30%时,需要停止或暂停后台位置监控。当电池电量增加时,应在后台恢复位置监控。我该怎么做?我正在使用重要的位置更改更新(CLLocationManager API方法)进行后台位置监视


谢谢

根据

如果您启动此服务,并且您的应用程序随后 终止后,系统会自动将应用程序重新启动到 新事件到达时的背景。在这种情况下,选项 传递给应用程序的字典:didFinishLaunchingWithOptions: 应用程序委托的方法包含密钥 UIApplicationLaunchActionSlocationKey,指示您的 应用程序因位置事件而启动。重新启动后, 您仍然必须配置位置管理器对象并调用此 方法继续接收位置事件。重新启动时 位置服务,当前事件将传递给您的代表 马上。此外,您所在位置的location属性 使用最近的位置对象填充管理器对象 在开始定位服务之前

第一步:-

因此,当应用程序在后台启动时,请检查
uiApplicationLaunchActionSlocationKey
的启动选项键。然后,您将知道位置事件的应用程序启动原因

应用程序在后台跟踪位置更新,已清除, 现在已经重新启动。在本例中,字典包含 键,指示由于新的错误而重新启动了应用程序 地点事件

第二步:-获取电池%

//This will give you the battery between 0.0 (empty) and 1.0 (100% charged)
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
float batteryLevel = [[UIDevice currentDevice] batteryLevel];

//If you want it as a percentage, you can do this:
batteryLevel *= 100;
第三步:-检查应用程序状态(如果需要)

//This will give you the battery between 0.0 (empty) and 1.0 (100% charged)
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
float batteryLevel = [[UIDevice currentDevice] batteryLevel];

//If you want it as a percentage, you can do this:
batteryLevel *= 100;
如果应用程序位于后台,则执行下一步

[UIApplication sharedApplication].applicationState == UIApplicationStateBackground
第四步:-停止监测重大位置变化

应用电池百分比检查,如果低于30%,则停止监测位置更新

如果您发现电池电量超过30%且位置监控未启用,则
startMonitoringLocationUpdate

此检查可在
didUpdateToLocation:fromLocation
中完成,可能在应用程序激活时进行,也可能根据您的应用程序要求进行


希望这能帮助你

你是说如何读取电池电量?调用stopMonitoringSignificantLocationChanges或StopUpdateLocation后,如何调用startUpdatingLocation或startMonitoringSignificantLocationChanges-您是说用户应该通过设置授权位置监视吗?@java\u pill为此,您可以使用电池级别的本地通知并获取该事件重新开始更新。