2012-09-03 103 views
3

我需要得到確切位置(儘可能多儘可能準確),在後臺同時,爲電話號碼(呼叫將應用程序進行)的呼叫。據我從文件中瞭解,我可以聽取背景中位置的重大變化。我想知道重大更新有多準確,什麼時候會觸發。獲取用戶的位置,同時撥打電話

我需要在調用時,因爲這將是一個緊急呼叫的位置。它不是聽在前景位置,然後撥打電話,因爲這將是一個緊急情況下是一個好主意 - 通話將被立即進行。

是否有解決方案,以獲得在後臺的用戶準確定位?你有什麼建議?

編輯:位置將被立即發送到服務器。

+0

「我可以聽在後臺位置的顯著變化。」沒有大多數手機必須開通GPRS? :S這是一個奇怪的問題,但是,一個有趣的問題! – Phorce

回答

0

至於準確性,您可以在後臺得到準確的位置,根據這些conditions

獲取位置活動的背景

如果應用程序需要提供的應用程序是否在位置更新前景或背景,這樣做有多種選擇。首選方法是使用重要位置更改服務在適當時間喚醒您的應用程序以處理新事件。但是,如果您的應用程序需要使用標準位置服務,則可以將您的應用程序聲明爲需要後臺位置服務。

應用程序應請求後臺位置服務只有在沒有這些服務會影響其操作的能力。此外,任何請求後臺定位服務的應用程序都應該使用這些服務爲用戶提供切實的好處。例如,由轉向導航應用程序可能成爲後臺定位服務的候選對象,因爲它需要跟蹤用戶的位置並在下一次輪換時報告。

至於通話過程中獲得的位置,我沒有使用它自己,但導航應用程序,如「waze」在通話時就告知轉彎和導航事件,所以我想你問什麼是可能的。

如果我理解你的需求,你有兩個選擇:

  1. 如果你認爲用戶將靜態然後簡單地得到調用時就在接近用戶的位置。或者更好的時候你的應用程序是午餐時間撥打緊急電話。

  2. 如果用戶正在移動,那麼你可以'問'來獲得後臺定位事件。 即使那麼你應該考慮使用'重大變化的位置服務',因爲你不需要更多的用戶位置。標準的「位置服務」用於導航「轉機」服務。

* 最後的評論*

如果你的應用程序是你shold在前面的鏈接閱讀「爲節省電池電能提示」緊急程序。在追蹤他的位置時,您不希望用戶的電池電量耗盡。

+0

感謝您的回答。我只需要在通話之前或通話過程中跟蹤一次位置。用戶可能會靜止。我不知道我是否保證在3-5秒內獲得位置。呼叫應儘快作出,因爲它更重要的撥打電話。我不會可能需要一個節能方法,之後第一位置更新,我會關閉定位服務。 – basar

0

能不喜歡添加標誌在你的應用plist文件請求位置服務在後臺模式下運行。

在您的應用程序

然後,當用戶按下「呼叫」按鈕,你可以做你的正常CLLocationManager didUpdateToLocation,在執行通話權之前。

在您的didUpdateToLocation方法中,您可以將用戶的位置記錄到寫入應用程序沙箱庫/緩存文件夾的TXT文件中,也可以使用NSUserDefaults。

注意:我已經編寫了一個應用程序,用於記錄用戶的GPS位置,因爲即使在用戶按下鎖定屏幕時也是如此,所以我相信您的應用程序可以將GPS座標寫入TXT文件,即使該應用程序是最小化,只要你開始你的位置經理。