Android onLocationUpdate未使用GPS_PROVIDER调用

时间:2011-03-17 09:44:10

标签: android gps

您好
我有一个使用位置管理器的Android服务:

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时忽略位置报告

我看不出我错过了什么。任何的想法 ?感谢。

1 个答案:

答案 0 :(得分:3)

获取位置修复需要一段时间。首次定位时间(TTFF)取决于很多因素,如可见GPS​​卫星数量,信噪比,GPS芯片组等......

这是a nice article,可以帮助您在Android手机上充分利用GPS。