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状态更新,您可以微调用户位置开发.