【问题标题】:Conserving Battery with iOS CLLocationManager使用 iOS CLLocationManager 节省电池
【发布时间】:2014-12-03 20:36:28
【问题描述】:

考虑到我的应用程序的限制,我正在尝试通过使用 CLLocationManager 来提高效率:

  1. 如果应用处于“A”模式,请提供尽可能多且准确的位置数据 尽可能。

  2. 如果应用程序处于模式“B”,请至少每 10 分钟签入一次 具有“足够好”(可能约为 500m)的位置数据

  3. 当应用程序处于 背景。

由于约束 3,我在我的 plist 中向 UIBackgroundModes 添加了“位置”。 我正在像这样配置我的核心位置管理器:

- (CLLocationManager *)manager {
    if (_manager == nil) {
        _manager = [[CLLocationManager alloc] init];
        _manager.desiredAccuracy = kCLLocationAccuracyBest;
        _manager.distanceFilter = kCLDistanceFilterNone;
        _manager.pausesLocationUpdatesAutomatically = NO;
        _manager.delegate = self;
    }

    return _manager;
}

我还定义了一个这样的枚举:

typedef NS_ENUM(NSUInteger, LocationMonitoringMode) {
    LocationMonitoringModeSignificantChanges, //Mode B
    LocationMonitoringModeContinuous, //Mode A
};

我是这样使用的:

- (void)setLocationMonitoringMode:(LocationMonitoringMode)mode {
    if (mode == LocationMonitoringModeContinuous) {

        [self.manager stopMonitoringSignificantLocationChanges];
        [self.manager startUpdatingLocation];

    } else if (mode == LocationMonitoringModeSignificantChanges) {

        [self.manager stopUpdatingLocation];
        [self.manager startMonitoringSignificantLocationChanges];
    }
}

问题:这种“切换”是使用 CLLocationManager 节省电池的有效方法吗?显然,使用kCLLocationAccuracyBestkCLLocationAccuracy3Kilometers(gps 与蜂窝塔无线电)的功耗存在很大差异。但是是否也有很大的成本,比如kCLLocationAccuracyBestkCLLocationAccuracyNearest10Meters

【问题讨论】:

  • kCLLocationAccuracyBest & kCLLocationAccuracyNearest10Meters 的费用相同。任何低于 100m 的距离都需要设备为 GPS 芯片供电。

标签: ios core-location


【解决方案1】:

第一个问题:

是的。切换看起来很好。您不必创建两个单独的位置管理器实例。

根据 Apple 关于 CoreLocation 的文件 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html

显着变化的位置服务提供的准确度足以满足大多数应用的需求,是标准位置服务的省电替代方案。该服务使用 Wi-Fi 来确定用户的位置并报告该位置的变化,从而使系统能够比其他方式更积极地管理电源使用情况。

第二个问题:

您可以使用 Apple 的能量诊断仪器来查看 GPS 芯片的启动精度。我们最近的调查表明,当 desiredAccuracy 或 distanceFilter 值小于 100 米时,GPS 芯片就会通电。仪器提供的能源使用值对我来说非常粗略,无法得出所需准确度和电池使用量之间的任何直接关联。然而,根据流行的观点,尽可能不打开 GPS 芯片是节能的一个很好的代表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多