2010-07-25 44 views
3

我已成功通過registerLocationListener()和onLocationChanged()方法獲取GPS數據。唯一的問題是,如果沒有更多的GPS數據(例如,當我進入室內,進入隧道等),我的應用程序的速度讀數會凍結。我想爲我的應用程序的行爲是,由於缺乏新的數據(設置速度爲零,閃爍速度讀數等),用戶不知何故被通知速度讀數可能不準確。定期檢查android GPS是否有新數據

我該怎麼做?我雖然定期檢查GPS單元是否檢測到任何衛星,但我不知道如何強制定期檢查。

+0

也許你可以使用GpsStatus.Listener,雖然我遇到了一些問題(請參閱我的帖子http://stackoverflow.com/questions/3287389/gpsstatuslistener-no-satellites-used-in-fix-although-status -is-gpsstatus-GPS前夕)。最近我面臨類似的任務,這就是爲什麼我現在同時運行帶有gps_provider和network_provider的兩個requestLocationUpdates。 – 2010-07-25 06:49:41

回答

3

也許你可以啓動一個定期計時器。如果計時器看到最後一次GPS修復是舊的,它會顯示通知。應用程序應該記住最後一次修復的時間。

+0

這幾乎是我在嘗試使用GpsStatus.getSatellites()和GpsSatellite.usedInFix()後不成功的結果。 每當我在LocationListener中獲取一個新的Location對象時,我都會使用System.currentTimeMillis()設置一個時間戳,然後比較每次在我的GpsStatus.Listener中收到更新的時間。這是原始的,但到目前爲止,它是我發現的唯一解決方案... – Chris 2010-08-02 14:05:04