标签: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)
注册指定提供者定期通知的当前活动.将定期使用当前位置或状态更新来调用提供的LocationListener.
收到最近的位置可能需要一段时间.如果需要立即位置,应用程序可以使用getLastKnownLocation(String)方法.
如果用户禁用了提供程序,则将停止更新,并将调用onProviderDisabled(String)方法.只要再次启用提供程序,就会调用onProviderEnabled(String)方法并再次启动位置更新.
可以使用minTime和minDistance参数来控制通知的频率.如果minTime大于0,则LocationManager可能会在位置更新之间休息minTime毫秒以节省电量.如果minDistance大于0,则仅当设备移动minDistance米时才会广播位置.要尽可能频繁地获取通知,请将两个参数都设置为0.
背景服务应该注意设置足够高的minTime,以便设备不会一直保持GPS或无线电设备消耗太多电力.特别是,不推荐低于60000ms的值.
提供的Looper用于实现回调机制.
参数
>提供者的名称
用来注册
> minTime
最短时间间隔
通知,以毫秒为单位.这个
字段仅用作提示
节省电力和实际时间
位置更新之间可能是
大于或小于此值.
> minDistance最小距离
通知间隔,以米为单位
>侦听器a的onLocationChanged(位置)
将为每个方法调用方法
位置更新
> looper a Looper
消息队列的对象
用于实现回调
机制.
抛出
IllegalArgumentException如果provider为null或不存在
如果listener为null,则为IllegalArgumentException
如果looper为null,则为IllegalArgumentException
SecurityException如果提供程序没有合适的权限.
标签:java,android,locationmanager 来源: https://codeday.me/bug/20190607/1191182.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。