繁体   English   中英

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

[英]Battery drain issue while using iBeacons in iOS application

我正在使用iBeacon技术开发iOS7 +应用程序(使用estimote sdk 2.3.2)。 现在,当应用程序在前台和后台运行时,我面临设备耗电的问题。 是否可以选择不使用CLLocationManager来对iBeacons进行测距?

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

但是,只有在需要时才可以打开Ranging Monitoring消耗的能量少得多,足以确定您是否处于iBeacon范围内。

我实现了一种逻辑,可以在上次看到它们时随时间存储找到的iBeacons Monitoring告诉我我遇到了新的iBeacon (如果我们离开了他的范围并再次接近它,它可能是一个旧的),我开始Ranging

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

然后在方法method中:

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

}

我正在检查是否在最后一个小时内看到了这个信标。 如果有的话,我会忽略它,如果没有,我会做我的逻辑。 之后,我停止Ranging

[self.beaconManager stopRangingBeaconsInRegion:self.beaconRegion];

然后只有Monitoring会检查新的iBeacons

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM