有什么方法可以指定位置管理器广播当前位置的时间间隔吗?
我正在使用一个名为 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) 方法并再次开始位置更新。
可以使用 minTime
和 minDistance
参数控制通知的频率。如果 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/