2013-07-06 33 views
0

我爲C#和Windows版本的Windows Phone編寫應用程序。在每個市場上,我都有類似的應用程序,它們都使用GPS隨着手機的移動來跟蹤移動。當電話外出時,互聯網連接當然會進出。LocationListener爲什麼需要互聯網連接

我的應用程序的兩個版本都將GPS讀數傳輸到我的雲服務器REST服務,並將它們記錄到數據庫中。如果應用程序沒有互聯網連接,它會在手機上保存GPS位置,然後當互聯網連接恢復時,會突破它對雲服務器的影響。這個過程在Windows手機中很好用。

但是對於Android,當沒有互聯網連接時,我的位置監聽器中的onLocationChanged事件不會在手機移動時觸發。當沒有互聯網信號時,它就像GPS關閉一樣工作。這對我來說毫無意義。它應該以這種方式工作嗎?爲什麼GPS需要互聯網連接才能正常工作? 謝謝, Gary

編輯:我們從進一步的測試發現,互聯網可用性與onLocationChanged事件失敗無關。事件只是在大約20分鐘後停止在我們的服務中發射到幾個小時,我們無法找到任何理由。

+0

GPS和onLocationChanged()不使用Internet連接。如果您正在使用地圖,那麼它將使用互聯網連接 –

+3

'GPS_PROVIDER' **不需要互聯網連接工作**,只需要將數據傳輸到您的服務器雲就需要互聯網連接。我認爲你的代碼有問題,就是這樣,分享你的代碼以便更好地瞭解你的問題 – Houcine

+0

-1是什麼意思?有人能告訴我這是什麼意思嗎? –

回答

0

否獲取GPS不需要互聯網必然

但以穩定,工作和兼容的方式使用GPS獲得正確的座標是一團糟。

通常你在提供商之間切換,並利用互聯網來給出良好的估計如果 GPS沒有反應良好。

確保GPS正在工作,並發現一個很好的信號,因爲互聯網可以提高GPS初始化速度。

GPS加載速度非常慢。這可能需要6到8分鐘,特別是如果覆蓋率較差。只有在GPS實際確定其位置後。在開始的幾分鐘內,您將看不到任何東西,因爲沒有更新發生。

也許你用NETWORK_PROVIDER來代替GPS_PROVIDER

像這樣

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 

嘗試使用:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 

如果網絡不可用。

嘗試使用兩者,有很多很好的例子如何確保您獲得最佳位置。不要讓那個車輪;)