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

时间:2010-04-02 10:11:04

标签: java android locationmanager

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

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

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

由于

3 个答案:

答案 0 :(得分: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 最短时间间隔 通知,以毫秒为单位。这个 字段仅用作提示 节省电力和实际时间 位置更新之间可能是 大于或小于此值。
  • min距离最小距离 通知间隔,以米为单位
  • 监听者a的onLocationChanged(位置) 将为每个方法调用方法 位置更新
  • looper a Looper 消息队列的对象 用于实现回调 机构。

抛出

IllegalArgumentException如果提供者为空或不存在 如果监听器为空,则IllegalArgumentException 如果looper为null,则IllegalArgumentException 如果提供商没有合适的许可,则SecurityException

答案 1 :(得分:1)

minTime:通知的最短时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。

minDistance:通知的最小距离间隔,

答案 2 :(得分:0)

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 9000, 500,locListener);

// 60000是1分钟,100是KM

上面你有9000(九秒)和500,如果位置移动超过500KM