2011-03-17 47 views
4


我必須使用位置管理器在Android服務:的Android onLocationUpdate不調用GPS_PROVIDER

if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.i("service","start with GPS"); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);
}

然後位置監聽器:

private LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location aLocation) {
Log.i("location listener", "location updated");
}
... other methods ....
}

在清單中, ACCESS_FINE_LOCATION授權已設置。

對於NETWORK_PROVIDER,模擬器和手機(Xperia Android 1.6到2.2)都可以正常工作。它在GPS_PROVIDER模擬器中工作正常。但是當我嘗試在設備中使用GPS時,位置監聽器從不會被調用。我可以在DDMS中看到GPS實際上正在工作並檢索位置,但它從不調用監聽器方法。 有一個奇怪的消息,但:

WARN/libloc_api(1173):loc_eng_report_position:忽略持倉報告顯示,當會話狀態= 1

我看不到我錯過了什麼。任何想法 ?謝謝。

+0

你等待定位多久? GPS圖標是動畫還是靜止? – Reno 2011-03-17 11:39:55

+0

嗯,我等了一兩分鐘,但在DDMS的日誌中,我發現GPS正在查找位置,因爲它報告的是經緯度。需要多長時間? – user244129 2011-03-17 13:45:23

+0

1至15分鐘。一旦它得到修復,該圖標將停止狀態欄中的動畫。 – Reno 2011-03-17 13:47:28

回答

3

需要一段時間才能獲得定位。第一次修復de(TTFF)的時間取決於許多因素,如可見GPS​​衛星的數量,信噪比,GPS芯片組等等...

這裏是a nice article這將幫助您獲得最佳效果在Android手機上的GPS。

相關問題