在iOS应用程序中使用iBeacons时出现电池耗尽问题

时间:2015-01-27 06:59:54

标签: ios objective-c cllocationmanager ibeacon

我正在使用iBeacon技术开发iOS7 +应用程序(使用estimote sdk 2.3.2)。现在,当应用程序在前台和后台运行时,我正面临设备电池耗尽问题。 在不使用iBeacons的情况下,是否可以选择范围CLLocationManager

1 个答案:

答案 0 :(得分:1)

范围iBeacons的唯一方法是使用CoreLocation,不幸的是它非常耗电。

但是,您只能在需要时打开RangingMonitoring消耗的能量要少得多,而且足以发现你是否在iBeacon范围内。

我已经实现了一个逻辑来存储找到iBeacons时我上次看到它们的时间。当Monitoring通知我我遇到了新的iBeacon时(如果我们离开他的范围并再次靠近它,它可能是旧的)我开始Ranging

- (void)beaconManager:(ESTBeaconManager *)manager didEnterRegion:(ESTBeaconRegion *)region { 
    [self.beaconManager startRangingBeaconsInRegion:self.beaconRegion];
}

然后在方法方法中:

- (void)beaconManager:(ESTBeaconManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(ESTBeaconRegion *)region { 

}

我在过去一小时内检查过我是否看过这个灯塔。如果我有我忽略它,如果不是我做我的逻辑。之后我停止Ranging

[self.beaconManager stopRangingBeaconsInRegion:self.beaconRegion];

然后只有Monitoring正在检查新的iBeacons