我對iPhone應用程序開發有點初學者,但我試圖製作一個應用程序,它基本上每隔一段時間就會更新一次您的位置,當它不在前臺時,這樣我就可以映射一個人的位置,當他/她啓動一個應用程序。我以爲我可以使用startMonitoringSignificantLocationChange,因爲它在應用程序處於後臺時起作用,但事實證明這是非常不準確的。我真的希望能夠設置一個時間間隔,例如,每隔10分鐘就會更新位置,但我不知道如何去做。有任何想法嗎?替代startMonitoringSignificantLocationChanges?
回答
你可以只使用startUpdatingLocation
但只要確保你的CLLocationManager
的屬性設置:
使用
distanceFilter
明智的:不是檢查位置更新每隔X分鐘,只是告訴定位管理器更新你每200/300米(取決於你的用戶是徒步還是駕駛)。desiredAccuracy
也應該被設置爲100米左右(看在頭文件中聲明的常量),所以您的應用程序將不會耗盡電池..
您的應用程序不會被重新啓動如果遇難,但只要它留在後臺,它(即位置經理的代表)將繼續收到locationManager:didUpdateToLocation:fromLocation:
。
希望有所幫助。
閱讀background location documentation在蘋果網站在這裏你有
一種選擇是宣佈你的應用爲要求連續位置更新。
一個應用程序可以聲明自己爲 需要連續的後臺位置 更新。需要定期 位置更新,無論是在 前臺和後臺應用程序,應加 的UIBackgroundModes關鍵的 Info.plist文件和 此鍵的值設置爲包含 位置字符串數組。此選項爲 ,旨在用於提供 特定服務(例如導航 服務)的應用程序,這些服務涉及始終將 的位置通知 。在應用程序的Info.plist文件 中存在鍵 告訴系統它應該允許 應用程序按照需要在 的背景下運行。
這會得到預期的結果,因爲您的應用程序將能夠跟蹤用戶走動的位置,但是您需要知道這是最耗電的選項,並且它通常被認爲是最不理想的選項。然而,如果你想跟蹤某人的步行,這就是你需要做的事情。
但是。你說你只想每10分鐘左右更新一次。在這種情況下,您最好不要使用此策略,而應使用重要的位置更新。這些將在您的應用程序關閉時重新啓動您的應用程序,但正如您所說,它們不是很準確。讓它們變得更好的訣竅是一旦應用程序獲得重要的位置更新,就可以立即開始正常的位置更新,並且在應用程序再次被暫停之前,您應該有足夠的時間來改善位置(通過發送更多更新)。
這不會是完美的,但它會比僅僅使用重要的(即細胞塔)更改更好。
- 1. startMonitoringSignificantLocationChanges代表只調用一次
- 2. StartMonitoringSignificantLocationChanges not calling didupdatedLocations
- 3. startMonitoringSignificantLocationChanges問題
- 4. startMonitoringSignificantLocationChanges示例
- 5. CCLocation manager - startMonitoringSignificantLocationChanges
- 6. CLLocationManager startUpdatingLocation vs startMonitoringSignificantLocationChanges
- 7. startMonitoringSignificantLocationChanges not fired?
- 8. 越獄iPhone 3g + startMonitoringSignificantLocationChanges
- 9. startMonitoringSignificantLocationChanges不是在iOS5中
- 10. iPhone核心位置startMonitoringSignificantLocationChanges
- 11. startMonitoringSignificantLocationChanges方法沒有響應
- 12. ios,startMonitoringSignificantLocationChanges - 有時會中斷監視
- 13. startMonitoringSignificantLocationChanges和startUpdatingLocation如何互相影響?
- 14. 如何獲取locationManager startMonitoringSignificantLocationChanges準確讀數
- 15. StartMonitoringSignificantLocationChanges方法不返回位置
- 16. startMonitoringSignificantLocationChanges需要啓用背景位置?
- 17. iphone - 電池使用startMonitoringSignificantLocationChanges和desiredAccuracy
- 18. startMonitoringSignificantLocationChanges用於提供位置的信息
- 19. 替代替換
- 20. 代替代替使用PowerShell
- 21. 什麼是替代(替代())?
- 22. 替代蟒蛇代替
- 23. 替代
- 24. 替代
- 25. 替代
- 26. (。*)代替(。*?)
- 27. 替代
- 28. 替代
- 29. ViewModel代替主鍵代替主鍵
- 30. c#Array.ForEach替代元素替代
如果您想追蹤用戶啓動應用程序時的位置,爲何不在應用程序啓動時啓動位置服務? – 2011-02-04 08:36:32