2017-05-08 51 views
0

我不得不在要求用戶的位置我的應用程序的部分中使用的代碼準備好以下兩行:安卓的LocationManager GPS_provider VS Network_provider

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

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

問題是,在測試時真實的設備,我已經注意到,使用GPS_provider在建築物內部等某些地方工作時效果不佳......應用程序等待獲取GPS座標,這需要很長時間,或者除非我有開放的天空條件。

的問題將是:我怎麼也仍然使用GPS_provider默認但是,如果GPS座標時間超過XXXX秒被收購,然後切換到Network_provider並從網絡獲取位置。

小編輯:它可能是任何方式來檢查GPS信號強度之前使用GPS或網絡提供商?

+1

http://stackoverflow.com/a/3551743/5094531這可能幫助 –

+0

是感謝!這可以幫助第二部分的問題! – codeKiller

+1

是啊.....工作的第一部分:) –

回答

1

LocationListener具有功能onStatusChanged()。你必須覆蓋這個函數來檢查GPS_PROVIDER的狀態,並相應地採取必要的行動,在你的情況下切換到NETWORK_PROVIDER。

希望這回答了你的查詢

+0

感謝您的答案,仍然需要弄清楚如何切換供應商GPS後一直試圖獲得位置爲XXX秒....也許最好的會使用' getBestProvider'並添加一個具有'速度'要求的'Criteria'? – codeKiller

+0

你的想法也不錯http://stackoverflow.com/a/5505581/5094531 –