android位置更新问题

时间:2010-11-17 04:24:21

标签: android

我有一项活动需要在更新位置时向用户显示提醒, 但我首先需要获取当前位置(更新上次已知位置),然后启动位置更新侦听器以在此活动中显示警报。
基本上我需要的是在创建时间变化的位置时显示警报。
如果我在创建活动时使用getLastKnownLocation,它可能已过时,那么从活动创建时间开始几秒钟就会调用requestLocationUpdate监听器。
我怎样才能做到这一点?


提前谢谢,

2 个答案:

答案 0 :(得分:3)

获取最后的已知位置(快速)

LocationProvider locationProvider = LocationManager.NETWORK_PROVIDER;
// Or use LocationManager.GPS_PROVIDER
Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider);

来自(http://developer.android.com/guide/topics/location/obtaining-user-location.html#FastFix

收听位置更新:http://developer.android.com/guide/topics/location/obtaining-user-location.html#Updates

这是您可以使用的功能。但要知道最后一个位置可能很旧且不准确。取决于应用程序何时尝试最后一次获取该位置。但它通常应该在你所在的地方。

如果这还不够好,那么你必须做这样的事情:

  1. 开始收听更新
  2. 保存前1-3次左右的答案。 (没有测试什么是最好的。甚至更高)。或者可能是1分钟或5分钟(如果您需要确切的位置,gps可能需要很长时间)
  3. 之后,您不再保存位置更新,而是检查它是否已移动。
  4. 我希望这会有所帮助。

答案 1 :(得分:1)

检查Blow Link .. 可能对你有所帮助...... 因为你必须通过sach参数,以便位置管理员可以轻松更新你的位置,你的代码也是正确的位置....

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28long,%20float,%20android.location.Criteria,%20android.app.PendingIntent%29