我正在开发一个iOS应用程序,在后台永久使用定位服务来监控信标和全球定位系统区域。这会导致我的应用程序在没有接近我的iBeacons位置的情况下消耗掉电池。它还总是显示状态栏中的Location蓝色箭头,这会让我的用户对我的应用有一个不好的感觉。
我希望能够避免永久地使用Location,但仍然能够检测到iBeacons。我认为,定期唤醒我的应用程序,查看设备是否靠近我的iBeacons位置,将节省电池,并允许我定位设备,而不需要在状态栏中显示位置服务蓝色箭头。
这个解决方案可行吗?还是你认为有更好的解决方案?
发布于 2014-09-24 23:37:51
当你的应用程序在后台寻找信标时,iOS已经对电池的使用进行了优化。我的测试表明,额外的电池使用量是最小的,当你的应用程序处于后台时,蓝色箭头位置图标就不会出现,这段时间很短(约10秒),信标探测到后,信标会将你的应用暂时唤醒到后台。
你确定是你的应用让蓝色箭头出现了吗?这种情况真的发生在长时间的背景中吗?您是否在plist中设置了不必要的位置背景模式?
发布于 2014-09-26 13:28:00
在iOS 7.1之后,苹果优化了那里的信标服务。现在你会得到,区域在你身边。当应用程序很难关闭时,您将得到本地通知。您可以将这些方法用于额外的代码:-
-(CLLocationManager) didEnterRegion:(CLRegion *)区域{}-(CLRegion*)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {}
正如@davidgyoung所说,iOS已经优化了电池的使用,所以不要担心。:)
https://stackoverflow.com/questions/26023502
复制相似问题