在一個iPhone應用程序的位置,是可以跟蹤的位置,並將其發送到服務器,即使有權限位置的應用程序沒有在後臺運行。是可以跟蹤即使應用程序沒有運行
回答
這是可能的 - 見this document對於一般的多任務處理,這section of the Location Awareness Programming Guide for "Getting Location Events in the Background"。當然,所有這些都討論了iOS設備可以獲取您的位置的各種方式(手機信號塔三角測量,Skyhook式WiFi網絡觀測和GPS),而不是專用GPS。
總之,從讀那些文檔:添加UIBackgroundModes鑰匙插入你的info.plist,這是一個數組,並把值「位置」進去。即使在後臺,您也會收到CLLocationManager更新。
但是,如果你想成爲不錯的電池,那麼你最好使用一個CLLocationManager的startMonitoringSignificantLocationChanges方法。那麼即使在後臺應用程序中,即使在後臺應用程序中,您也可以獲得適當的位置更新。文件的其他部分指出,重要的改變是從一個電池塔到另一個電池塔的任何改變。
但是,如果應用程序沒有在後臺運行,那麼它有可能嗎? – 2013-02-21 03:20:05
如果您的應用程序未在前臺或背景上運行,該怎麼做? – Ares 2013-02-21 03:22:29
你可以做[區域監測](http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html)..你在哪裏註冊一個區域(一個點一個半徑),ios會告訴你什麼時候你來到那個區域..或者離開那個區域...但是我不知道你是否想要..或者你想追蹤用戶,因爲他沿着它移動。 – chuthan20 2013-02-21 03:23:10
如果應用程序在後臺運行,你可以在info.plist中添加鍵值對。關鍵是UIBackgroundModes
和值象下面這樣:
然後做一些背景:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
UIDevice *device = [UIDevicecurrentDevice];
BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskingSupported)]) {
backgroundSupported = YES;
}
__blockUIBackgroundTaskIdentifier bgTaskId = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTaskId];
bgTaskId = UIBackgroundTaskInvalid;
}];
if (backgroundSupported) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//
});
}
}
但是,如果應用程序是不是即使在背景,即,不是在內存,那麼應用程序可以做什麼? CPU不會運行應用程序的一行代碼。
那麼這些人怎麼做呢?請參閱[http://www.stealthgenie.com](http://www.stealthgenie.com) – 2013-02-21 04:51:13
@ user1630200 :)我看到了。但是也許軟件在後臺運行。我無法想象軟件可以收集用戶信息而無需在內存中運行。 – 2013-02-21 05:20:36
- 1. 是否可以自動運行即點即用應用程序?
- 2. 即使用戶沒有打開應用程序,是否可以在Android中跟蹤GPS位置
- 3. 如何某些應用程序可以跟蹤即使應用程序是封閉
- 4. C#應用程序是否跟蹤其運行的時間?
- 5. 跟蹤調用pull_task()以運行進程
- 6. 即使應用程序「已刪除」,是否有一種方法可以跟蹤已用時間?
- 7. 沒有跟蹤應用程序中的使用情況
- 8. 即使應用程序關閉,Android應用程序如何跟蹤用戶?
- 9. 即使應用程序沒有運行(如查找我的iPhone)
- 10. 即使應用程序被暫停,UWP位置跟蹤
- 11. 使用USB跟蹤跟蹤Android應用程序
- 12. 跟蹤Web應用程序
- 13. 跟蹤應用程序
- 14. Django跟蹤應用程序?
- 15. ASP.NET應用程序 - 跟蹤
- 16. 把應用程序跟蹤
- 17. 應用程序內存使用跟蹤
- 18. 跟蹤使用的應用程序
- 19. 即使值沒有改變,是否可以自動運行?
- 20. 有沒有辦法跟蹤用戶是否從應用程序簽入?
- 21. 應用程序在後臺運行時的位置跟蹤
- 22. 一直運行的iOS GPS跟蹤應用程序
- 23. 跟蹤正在運行的應用程序
- 24. IOS應用程序可以從下載進行跟蹤以安裝嗎?
- 25. 運行命令行應用程序並使用進度條跟蹤
- 26. 是否可以使用Mono運行Clickonce應用程序?
- 27. 使用Node.js跟蹤Slack bot tut,運行時沒有輸出?
- 28. 是否有可能開發一個跟蹤其他應用程序的使用的iPhone應用程序
- 29. 堆棧跟蹤從來沒有追溯應用程序代碼
- 30. 應用程序崩潰setContentView android沒有堆棧跟蹤
我沒有答案,但我可以肯定地說這是可能的,你可能無法將該應用程序提交給appstore。 – 2013-02-21 03:05:44
[我如何在iOS應用程序中每隔n分鐘更新一次背景位置?](http://stackoverflow.com/questions/6347503/how-do-i-get-a-background-location-update -every-n-minutes-in-my-ios-application) – Monolo 2013-02-22 19:23:44