【问题标题】:Battery drain issue while using iBeacons in iOS application在 iOS 应用程序中使用 iBeacons 时出现电池耗尽问题
【发布时间】:2015-01-27 06:59:54
【问题描述】:

我正在使用iBeacon 技术开发一个iOS7+ 应用程序(使用estimote sdk 2.3.2)。现在,当应用程序在前台和后台运行时,我面临设备电池耗尽问题。 在不使用CLLocationManager 的情况下,有任何选择iBeacons 的选项吗?

【问题讨论】:

    标签: ios objective-c cllocationmanager ibeacon


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      相关资源
      最近更新 更多