我使用UIBackgroundModes = location來跟蹤用戶位置並將數據發送到我的服務器。ios背景位置與kCLLocationAccuracyKilometer和GPS圖標
其實我:
self.bgLocationManager=[[CLLocationManager alloc] init];
self.bgLocationManager.delegate=self;
self.bgLocationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
self.bgLocationManager.distanceFilter = 250.0;
[self.bgLocationManager startUpdatingLocation];
我見過kCLLocationAccuracyKilometer使用手機信號塔技術作爲默認的方法來發現用戶位置。
當我的應用程序進入後臺狀態時,GPS圖標仍處於活動狀態,這可能會讓用戶擔心電池消耗。另外,我看到其他應用程序(例如谷歌縱橫)可以關閉GPS圖標。
開發跟蹤用戶位置的應用程序的正確方法在哪裏?
編輯: 要使用startMonitoringSignificantLocationChanges,我需要更換我的代碼:
self.bgLocationManager=[[CLLocationManager alloc] init];
self.bgLocationManager.delegate=self;
self.bgLocationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
self.bgLocationManager.distanceFilter = 250.0;
[self.bgLocationManager startMonitoringSignificantLocationChanges];
不是嗎?
感謝您的回覆。關於第一點,我明白了,但關於第二點,你的意思是我必須將我的代碼替換爲我的最後一次編輯? – CeccoCQ
@Cecco我想說的是,GPS圖標並不是要說「嗨,你電池正在耗盡」,而是「嘿,你被跟蹤」。所以你關心用戶對前者的看法是有效的,你可以通過告訴他們儘可能尊重他們的電池來改善他們的擔憂(例如,在你的應用的設置中有一個功能,提及「低功耗位置服務」)。但是,如果位置服務處於啓用狀態,圖標就會顯示,您只需盡一切可能來緩解他們可能的擔憂。 – Rob
@Cecco更好的解決方案是確保在不需要它時關閉位置服務(例如,當應用程序進入後臺時,如果位置不會稍微改變等)。參見[保存電池的技巧](http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW17) 。 – Rob