在一個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. 沒有跟蹤應用程序中的使用情況
- 3. Ajax.actionlink工作,即使應用程序沒有運行
- 4. 即使應用程序被暫停,UWP位置跟蹤
- 5. 跟蹤應用程序
- 6. 把應用程序跟蹤
- 7. 跟蹤Web應用程序
- 8. ASP.NET應用程序 - 跟蹤
- 9. Django跟蹤應用程序?
- 10. 即使值沒有改變,是否可以自動運行?
- 11. 跟蹤使用的應用程序
- 12. 有沒有辦法跟蹤用戶是否從應用程序簽入?
- 13. 一直運行的iOS GPS跟蹤應用程序
- 14. 是否有可能開發一個跟蹤其他應用程序的使用的iPhone應用程序
- 15. 堆棧跟蹤從來沒有追溯應用程序代碼
- 16. 應用程序崩潰setContentView android沒有堆棧跟蹤
- 17. 是否可以在Flex應用程序中運行Java程序?
- 18. 是否可以在沒有GNOME的情況下運行GTK +應用程序?
- 19. Java - 沒有堆棧跟蹤可用
- 20. 如何讓iOS應用程序執行一些代碼,即使應用程序沒有在後臺運行?
- 21. 是否有可能跟蹤腳本運行的總時間?
- 22. Skype應用程序沒有運行
- 23. 創建一個可以獲取位置信息選項的應用程序,即使它沒有運行
- 24. 用戶跟蹤應用程序被
- 25. 沒有CUDA/OpenCL等,可以使用GPU進行光線跟蹤嗎?
- 26. 是否可以跟蹤程序中的特定數據?
- 27. 可以使用linkshare.com在Apple應用程序商店中跟蹤免費應用程序轉換嗎?
- 28. 即使用戶沒有打開應用程序,如何一次運行我的iPhone應用程序?
- 29. 調試logcat堆棧跟蹤 - 沒有例行程序信息
- 30. 跟蹤在Java Swing應用程序
我沒有答案,但我可以肯定地說這是可能的,你可能無法將該應用程序提交給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