【发布时间】:2011-03-17 09:44:09
【问题描述】:
嗨
我有一个使用位置管理器的 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 时忽略位置报告
我看不到我错过了什么。任何想法 ?谢谢。
【问题讨论】:
-
您要等多久才能确定位置? GPS 图标是动画还是静止?
-
好吧,我等了一两分钟,但在 DDMS 的日志中,我看到 GPS 正在寻找位置,因为它报告了纬度/经度。预计需要多长时间?
-
1 到 15 分钟。修复后,图标将在状态栏中停止动画。
-
Duh ... 它终于在 20 百万之后发生了 ... 好的,解决方案是:等待足够长的时间 ... 如果您愿意将其作为答案,我会接受。