使用kCLLocationAccuracyKilometer和GPS图标进行ios背景定位



我使用UIBackgroundModes=location来跟踪用户位置并将数据发送到我的服务器。

事实上,我已经:

self.bgLocationManager=[[CLLocationManager alloc] init];
self.bgLocationManager.delegate=self;
self.bgLocationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
self.bgLocationManager.distanceFilter = 250.0;
[self.bgLocationManager startUpdatingLocation];

我已经看到kCLLocationAccuracyKilometer使用Cell Tower技术作为默认方法来发现用户位置。

当我的应用程序进入后台状态时,GPS图标仍然处于活动状态,这可能会让用户担心电池消耗。此外,我看到其他应用程序(例如谷歌纬度)可以关闭GPS图标。

开发跟踪用户位置的应用程序的正确方法在哪里?

编辑:要使用startMonitoringSignificantLocationChanges,我需要将我的代码替换为:

self.bgLocationManager=[[CLLocationManager alloc] init];
self.bgLocationManager.delegate=self;
self.bgLocationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
self.bgLocationManager.distanceFilter = 250.0;
[self.bgLocationManager startMonitoringSignificantLocationChanges];

不是吗?

几个想法:

  1. GPS图标不仅是为了警告他们电池消耗(尽管在实践中,这是人们看到该图标时首先担心的事情),而且同样重要的是,它也是一个隐私警告,即他们的位置正在被跟踪。(为了说明这一点,定位服务设置位于设置应用程序的"隐私"下。)

  2. 与其希望kCLLocationAccuracyKilometer不会消耗太多电池,不如考虑使用重大更改服务,它正是出于这个目的而设计的。这还有一个优点,当位置发生变化时,它会唤醒你的应用程序,而标准服务不会这样做。

顺便说一句,我希望与标准服务(有点像地理围栏)相比,有一个不同颜色的图标或其他视觉提示来进行重大更改服务,这样用户就可以区分电池耗尽问题和隐私问题,但我不认为存在。

最新更新