requestLocationUpdates Android中的间隔

Web*_*bbo 6 gps android location

我尝试在onLocationChanged函数的更新中获得正确的速度,这是我的类:

public class LocationService extends Service implements LocationListener {
Run Code Online (Sandbox Code Playgroud)

将minTime放在6000上并没有帮助,它会不断更新,我做错了什么?

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper) {
Run Code Online (Sandbox Code Playgroud)

问候

dde*_*ele 23

minTime只是LocationProvider的提示,并不意味着您的位置监听器将每6秒调用一次.您将收到更多位置更新,并根据您的代码选择最准确的位置更新.

监控手机上的GPS图标.对requestLocationUpdates的调用将触发GPS精确定位您的位置,如果能够获得修复,它将向locationlistener发送一个或多个位置更新.(此时,您的GPS图标应在搜索位置时显示动画).

在此期间,您的locationlistener可能会收到多个位置更新.您的代码可以选择最准确的位置,并仅处理该位置.

GPS将位置更新发送给您的听众后,应该有一段时间不活动.(您的GPS图标应该消失几秒钟).这段不活动时间应与你的minTime相对应.GPS的状态也将改变,因为它将被放入TEMPORARILY_UNAVAILABLE.

之后,重复相同的过程.(GPS变为可用,您将再次收到一个或多个位置更新).

另外还要考虑到,如果GPS无法获得定位,GPS图标将保持活动状态超过6秒,但您不会收到位置更新.

您还可以通过以下方法通过听众监控GPS提供商的状态:

public void onStatusChanged(String provider, int status, Bundle extras) {}
Run Code Online (Sandbox Code Playgroud)

状态是android.location.LocationProvider上定义的以下常量之一

public static final int OUT_OF_SERVICE = 0;
public static final int TEMPORARILY_UNAVAILABLE = 1;
public static final int AVAILABLE = 2;
Run Code Online (Sandbox Code Playgroud)

看一看了解在Android中LocationListener的有关minTime行为的一个例子,一个场景(包括一些记录),以帮助您了解发生了什么事情.

请记住,调整LocationManager上的minTime和minDistance参数,并根据GPS状态更新,您可以微调用户位置开发.


小智 4

6000 毫秒等于 6 秒,看起来像是在不断更新。来自Android开发指南“不建议minTime低于60000ms”也许值得将其增加到60000ms