2013-03-10 204 views
3

我只有一個設備(HTC HD Deside)測試我的應用程序,當我想requestLocationUpdate時間過長

locationManager.requestLocationUpdate(criteria,0,0,this); //critera = "gps" 

我的GPS圖標,以獲取GPS數據顯示在通知欄,但它「閃爍」就好像它意味着我的設備正在查找並獲取GPS數據。因此,我的應用程序在成功從GPS獲取數據(大約1mn到3mn!)(在圖標停止閃爍之前)需要太多的「思考」時間

因此,我有義務創建一個類似於這:

do{ 
    lastLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
}while(System.currentTimeMillis() - lastLocation.getTime() > 5000); 

謝謝,我一定會得到一個最近的位置,但我失去了太多的時間。

有什麼問題?它是硬件嗎? 我能否找到解決此問題的更好方法? 我可以「快速」獲取GPS數據嗎? :/(1〜5秒)

+0

您是否需要更精細的GPS粒度,或者您可以通過其他提供商獲得? – 2013-03-10 22:07:01

+0

我需要使用GPS,因爲我的應用程序將在沒有WiFi /互聯網的位置使用^^ 因此,我必須使用GPS(獲取數據經度/緯度/高度的唯一方法嗎?) – user2137454 2013-03-10 22:13:34

+0

您不需要等待或輪詢)最後一個已知位置。一旦修復程序可用,位置偵聽器將立即被調用。如果從先前的GPS請求獲得修復,則最後知道的位置可能是有用的。如果沒有可用的空返回(順便說一下,這會導致你的循環崩潰)。 – Stefan 2013-03-11 09:29:06

回答

0

當您在建築物或有遮蓋的區域內時,GPS傳感器可能需要更多時間。有時候,如果你在建築物內部並且沒有GPS信號,它總是閃爍並且耗盡電池。嘗試利用其他提供商。

2

我想你應該在開發一個位置感知應用程序之前閱讀這個http://developer.android.com/guide/topics/location/strategies.html指南。 (GPS)傳感器需要1到3分鐘才能獲得修復,您不能有一個非常快速的修復(1-5秒,如你所願)。

您應該使用上次已知的位置值並開始請求位置修復。當你有一個,你相應地刷新你的內容。

0

您是否連接到數據網絡?

我不知道HTC,但通常當數據連接可用時,設備使用稱爲輔助GPS的東西。衛星星曆不是從地平線上掃描所有可見的衛星,而是從服務器下載的,獲得修復所需的時間爲10-20秒。

此外,您可能在室內或低信號區域,或者如果天線不好。

使用市場上的GPS測試應用程序來檢查天線是否有問題(通過比較兩個設備)。

+0

是的,我做到了!問題是一樣的。所以......正如你所說,這個問題是我認爲的一個低信號領域。 – user2137454 2013-03-14 11:27:25