java - 指定位置管理器在 Android 中广播当前位置的时间间隔

标签 java android locationmanager

有什么方法可以指定位置管理器广播当前位置的时间间隔吗?

我正在使用一个名为 startListening 的方法:

public void startListening() {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                0, 
                0, 
                this
        );
}

谢谢

最佳答案

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)

注册指定提供者定期通知的当前 Activity 。定期地,提供的 LocationListener 将使用当前位置或状态更新进行调用。

接收最新位置可能需要一段时间。如果需要即时位置,应用程序可以使用 getLastKnownLocation(String) 方法。

如果提供者被用户禁用,更新将停止,并且 onProviderDisabled(String) 方法将被调用。一旦再次启用提供者,将调用 onProviderEnabled(String) 方法并再次开始位置更新。

可以使用 minTimeminDistance 参数控制通知的频率。如果 minTime 大于 0,则 LocationManager 可能会在位置更新之间休息 minTime 毫秒以节省电量。如果 minDistance 大于 0,则仅当设备移动 minDistance 米时才会广播位置。要尽可能频繁地获取通知,请将两个参数都设置为 0。

后台服务应谨慎设置足够高的 minTime,以便设备不会因始终保持 GPS 或 radio 而消耗过多电量。特别是,不建议低于 60000 毫秒的值。

提供的Looper用于实现回调机制。

参数

  • provider 提供者的名字 注册
  • 分钟时间 的最小时间间隔 通知,以毫秒为单位。这个 字段仅用作提示 节省电力和实际时间 位置更新之间可能是 大于或小于该值。
  • minDistance 最小距离 通知间隔,以米为单位
  • 监听器 a whose onLocationChanged(Location) 每个方法都会被调用 位置更新
  • looper 一个 Looper 其消息队列将是的对象 用于实现回调 机制。

throw

IllegalArgumentException 如果提供者为空或不存在
IllegalArgumentException 如果监听器为 null
IllegalArgumentException 如果 looper 为 null
SecurityException 如果提供者没有合适的权限。

关于java - 指定位置管理器在 Android 中广播当前位置的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566079/

相关文章:

java - 使用检索到的 HTTP URL 填充 ListView

android - 按下后退以导航回上一个 Activity 时调用的生命周期?

android - 带有搜索 EditText 的 MvvmCross Droid MvxListView?

android - 为什么Android 12不会记录旅行?

iOS didEnterRegion 从未调用过

java - Xpath 计算 "[ ]"中的计数

java.lang.reflect.InitationTargetException?

android - 调用 startActivityForResult() 时出现空指针异常

ios - 位置管理器无法在 iOS 中获得速度

通过套接字发送 .jpg 或图像时 Java 连接重置