java - 如何每10秒更新一次GPS位置?

标签 java android updates

我有这些变量,并在 onResume 方法中进行以下调用:

  private Location userLocation;
  private GeoPoint point;
  private LocationManager manager;
  private LocationListener listener = new LocationListenerC();

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 25, locationListener); 

但是当我在 Android 模拟器中运行此应用程序时,用户的位置不会每 10 秒更新一次。有人可以帮忙吗?

最佳答案

参数mindTime并不意味着您将每隔minTime毫秒接收更新。这意味着您不会太频繁地收到更新(少于 minTime 毫秒),但不会指定您何时收到更新。如果 LocationManager 没有每 10 秒为您提供的新位置,它就不会提供。仅当有新位置时您才会收到更新。

您也在使用minDistance25 表示除非设备移动至少 25 米,否则您不会收到新的更新。模拟器不会移动,因此将此参数设置为0(这意味着更新不依赖于用户是否移动)。

更新率很大程度上取决于用户位置。例如,如果用户在建筑物内,GPS/网络提供商可能需要一段时间才能从卫星/基站接收更新。因此,您可能会以更长的时间间隔获得更新。但是,如果用户在室外并且设备信号良好,更新可能会变得非常频繁(但每 10 秒只会获得 1 次)

如果您想每 10 秒获取一次位置,则可以每 10 秒调用一次 getLastKnownLocation。但如果提供商没有进行更新,位置可能会相同。

关于java - 如何每10秒更新一次GPS位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546009/

相关文章:

java - 为什么我们需要这些 "explicit"catch block ?

Java输出流,在从数据库检索所有数据之前触发文件下载

android - 如何在Gradle中声明变量并将其打印在另一个Gradle文件中

json - Powershell:如何更新/替换 Json 和 XML 对象中的数据和值

ios - Xcode 8.0 更新后架构 arm64 的重复符号

java - datetimeformatter joda 使用可选的 millis 解析多种 utc 格式

JAVA : Program Works in Terminal , 但不在 Visual Studio Code 中:Mac OS

java - 如何在多个 Fragment 上应用单个搜索 View

Android 音频焦点 (AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)

typescript tsc --version 仍然是 0.9.5