【问题标题】:iPhone: Paired Devices vs iBeacon Bluetooth Battery ConsumptioniPhone:配对设备与 iBeacon 蓝牙电池消耗
【发布时间】:2016-03-10 13:23:48
【问题描述】:

我有 2 个应用程序(1 个是在后台注册和扫描 iBeacons,没有测距),另一个没有。除了第一个为 iBeacons 启用之外,这两个应用程序基本上相似。

// location manager config
    + (CLLocationManager *)sharedLocationManager {
static CLLocationManager *_locationManager;

@synchronized(self) {
    if (_locationManager == nil) {
        _locationManager = [[CLLocationManager alloc] init];
    //_locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
        _locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;
        _locationManager.pausesLocationUpdatesAutomatically = NO;
        if ([_locationManager respondsToSelector:@selector(allowsBackgroundLocationUpdates)]){
            _locationManager.allowsBackgroundLocationUpdates = YES;
        }
    }
}
return _locationManager;
}

    - (void)startMonitoringItem:(Item *)item {
    CLBeaconRegion *beaconRegion = [self beaconRegionWithItem:item];
    CLLocationManager *locationManager = [LocationTracker sharedLocationManager];
    [locationManager startMonitoringForRegion:beaconRegion];
}

- (void)stopMonitoringItem:(Item *)item {
    CLBeaconRegion *beaconRegion = [self beaconRegionWithItem:item];
    CLLocationManager *locationManager = [LocationTracker sharedLocationManager];
    [locationManager stopMonitoringForRegion:beaconRegion];
}

我在第一个应用程序中注册了大约 100 个 iBeacon,并在 iPhone 6 和 iPhone 6 Plus 上运行这两个应用程序,在这 100 个 iBeacon 附近运行相同的操作系统版本,都启用了蓝牙。

我只对进入和退出事件感兴趣,基本上只是在第一个应用程序中实现了这两个调用。我运行了大约 14 个小时的测试,只需将启用蓝牙的两部 iPhone 放在 iBeacons 附近即可。

当我在设置菜单中检查电池状态时,第一个应用程序消耗的电量最多比第二个应用程序多 1%(例如:第一个应用程序:25%,第二个应用程序:24%),两者相同设备。这是预期行为,因为应优化由 iOS 控制的蓝牙扫描算法以节省电池电量。

但是,在我客户的设备上,第一个应用程序消耗的电量是第二个应用程序的 5 倍(例如:第一个应用程序:10%,第二个应用程序:2%)。

当我检查他的蓝牙设置时,我意识到他的 iPhone 与大约 8 台其他设备配对。

所以我的问题是这样的。与其他设备配对是否会在我的第一个应用程序上导致更大的电池消耗,即使它只是在扫描 iBeacons?如果是,有什么方法可以通过算法优化以忽略配对设备并仅扫描 iBeacons。

我已经广泛阅读了 iOS 文档并咨询了 stackoverflow,但到目前为止还没有找到满意的答案。

我将不胜感激任何建议!

更新:请看截图示例

在上面的屏幕截图中,第一个和第二个应用的电池使用百分比在我的设备上几乎相同。但是,在我客户的设备(与其他 8 台设备配对)上,过去 24 小时和过去 ​​7 天,第一个应用程序的电池使用百分比通常是第二个应用程序的 5 倍(例如:10% 到 2%) .这两个应用程序在他的设备上运行的时间大致相同。这不是第一次发生。

【问题讨论】:

  • 对于与其他 8 台设备配对的设备——当报告的电池耗尽时,这些设备是否存在?如果是这样,则 iOS 可能存在错误报告电池消耗为应用程序,而实际上它是系统级消耗。
  • 嗨大卫,这是正确的。当漏电发生时,这些设备存在并处于活动状态。我将阅读更多内容以查看是否报告了此错误。再次非常感谢。

标签: ios iphone ibeacon ios-bluetooth


【解决方案1】:

是的,蓝牙配对,尤其是经典蓝牙将比在 iOS 后台扫描信标消耗更多的电量

对于在您的应用程序之外完成的配对,您无能为力。 Apple 的 iOS 沙盒应用程序因此不会影响常规系统设置(例如蓝牙打开或关闭,或蓝牙配对,例如网络共享和扬声器)或其他应用的行为(例如可能与蓝牙设备配对以实现特定应用目的的应用。)

底线是您描述的电池使用量不是由您的应用的信标扫描引起的。它是由配对引起的。如果您从客户的设备上卸载第一个应用程序,则该设备会以与根本没有安装您的应用程序相似的速度耗尽电池电量。

【讨论】:

  • 嗨,大卫,非常感谢您的快速更新!只是跟进,知道为什么配对的电池使用量计入我的第一个应用程序吗?如果我卸载第一个应用程序,是否会计算另一个使用蓝牙扫描的应用程序的 batt 使用量?
  • 根据我的经验,蓝牙扫描和配对在设置中显示为系统级电池使用量而不是应用程序级使用量。
  • 感谢您的澄清!但这仍然不能真正解释为什么我的客户的蓝牙配对与我第一个正在扫描 iBeacons 的应用程序无关,导致电池使用百分比比设置菜单中的第二个应用程序高 5 倍。我在电池使用菜单中找不到系统级电池使用情况,因为它只显示应用列表及其电池消耗比例。
  • 你能附上你看到的截图吗?
  • 谢谢大卫!我已经编辑了我的问题以包含屏幕截图以及其他说明。
猜你喜欢
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多