我通過GPS定期接收位置更新,問題是直到第一次位置更新發生的時間 - 這只是漫長的。當用戶在建築物內時,這個時間會更加糟糕。開始位置策略
因此,我正在尋找一些策略來提高啓動時間(目前我不使用getLastKnownLocation
,但我會)。我開始閱讀A Deep Dive Into Location以獲得一些想法,現在我想和你討論一些想法。
上面提到的博客文章首先通過設備上的每個位置提供者並查詢getLastKnownLocation
,但只有當它們不老,並且在允許的準確性範圍內時纔會考慮它們。
這裏是我的第一個問題:我希望能夠立即獲得基於網絡的位置,因此我會請求一個新的基於網絡的位置,然後我會從GPS提供商處獲得getLastKnownLocation
,並且如果最後一個GPS位置是在由基於點網絡的位置和半徑精度形成的圓圈內,然後我將採取GPS位置,而不管它多大。你怎麼看?
檢查最後已知的位置後我將啓動GPS定位跟蹤,因爲我只需要每2秒以上10μm變化,我會在使用 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2 * 1000, 10, this);
但是我發現一個規律(演示Being Epic: Best Practices for Android Development內滑動95和96,他首先打開粗略和精細的位置(對於時間和距離的變化,爲0,0),然後當接收到第一個事件時,他切換到真正需要的更新頻率。那麼,第一個gps當間隔設置爲0時,更新會更快?
In opp直到這種模式,我會保持粗略的更新,直到收到第一次GPS更新。你怎麼看?
希望得到一些有趣的答案!
----------------更新----------------
我做了一些調查,我打開GPS並等待得到解決。然後我把GPS關掉,開了50公里(31英里)。然後我用A Deep Dive Into Location的代碼得到所有getLastKnownLocation
。我試了兩次,第一次用GPS關閉,第二與GPS打開,但沒有修復:
1)GPS關閉我
- 提供商:網絡,正確的位置精度680米
- 提供商:被動(mProvider =網絡),如上述同一地點,同一時間如上
- 提供商:GPS,位置空
所以,我瞭解到,在GPS關閉你沒有getLastKnownLocation
。
2)帶GPS接通我
- 提供商:網絡,正確的位置精度652米
- 提供商:被動(mProvider =網絡),相同的位置的上方,同時上述
- 提供商: GPS位置,因爲它早些時候2小時,準確度12米,時間也早於2小時
在這裏,我瞭解到,舊消息不會失效,即使很明顯他們錯了。
在這種情況下,算法運行良好,因爲我在關閉GPS的時候移動了。 但是如果我進入房子呢?在這種情況下,2h的GPS結果將非常好,即使它已經過時。
在Google地圖中繪製位置的良好鏈接,包括半徑(精確度):[freemaptools](http://www.freemaptools.com/radius-around-point.htm) – ChrLipp