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

jcr*_*son 4 java android locationmanager

有没有办法指定位置管理器广播当前位置的时间间隔?

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

public void startListening() {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                0, 
                0, 
                this
        );
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Pen*_*m10 5

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

注册指定提供者定期通知的当前活动.将定期使用当前位置或状态更新来调用提供的LocationListener.

收到最近的位置可能需要一段时间.如果需要立即位置,应用程序可以使用getLastKnownLocation(String)方法.

如果用户禁用了提供程序,则更新将停止,并且onProviderDisabled(String)将调用该方法.只要再次启用提供程序,就会调用onProviderEnabled(String)方法并再次启动位置更新.

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

背景服务应该注意设置足够高,minTime以便通过始终保持GPS或无线无线电设备,设备不会消耗太多电力.特别是,不推荐低于60000ms的值.

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

参数

  • 提供者要注册的提供者的名称
  • minTime通知的最小时间间隔,以毫秒为单位.此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值.
  • minDistance通知的最小距离间隔,以米为单位
  • 监听器a将为每个位置更新调用其onLocationChanged(Location)方法
  • looper一个Looper对象,其消息队列将用于实现回调机制.

抛出

IllegalArgumentException 如果提供者为空或者
IllegalArgumentException 如果侦听器为空
IllegalArgumentException 则如果looper为null,
SecurityException则如果提供者没有合适的权限则为null .