2

我正在开发一个 iOS 应用程序,它在后台永久使用位置服务来监控信标和 GPS 区域。如果设备不在我的 iBeacons 位置附近,这会导致我的应用程序无用地消耗电池。它还总是在状态栏中显示定位服务蓝色箭头,这让我的用户对我的应用程序有不好的看法。

我希望能够避免永久使用定位服务,但仍然能够检测到 iBeacons。我认为定期唤醒我的应用程序以检查位置以查看设备是否靠近我的 iBeacons 的位置可以节省电池并允许我定位设备,而不会始终在状态栏中显示位置服务蓝色箭头。

这个解决方案可能吗?还是您认为有更好的解决方案?

4

2 回答 2

1

当您的应用程序在后台时,iOS 已经在寻找信标时针对电池使用进行了优化。我的测试表明,额外的电池使用量很少,并且当您的应用程序处于后台时,蓝色箭头位置图标不会显示,摘录非常短暂的时间(大约 10 秒),信标在信标之后暂时将您的应用程序唤醒到后台检测。

您确定是您的应用程序显示了蓝色箭头吗?这真的会在后台长时间发生吗?您是否在 plist 中不必要地设置了位置背景模式?

于 2014-09-24T23:37:51.563 回答
0

iOS 7.1之后苹果优化了Beacon服务。现在你会得到你附近的地区。虽然应用程序很难关闭,但您会收到本地通知。您可以将这些方法用于额外的代码:-

-(void)locationManager:(CLLocationManager *)manager
        didEnterRegion:(CLRegion *)region {
}
-(void)locationManager:(CLLocationManager *)manager
         didExitRegion:(CLRegion *)region {
}

正如@davidgyoung 所说,iOS 已经针对电池使用进行了优化,所以不用担心。:)

于 2014-09-26T13:28:00.640 回答