Android Locationprovider暂时不可用的时间太长

Android Locationprovider暂时不可用的时间太长,android,location,Android,Location,根据这篇文章(UPD:链接已删除,因为它现在会导致一些垃圾),在请求位置更新时设置minTime将导致提供商将自己设置为在minTime毫秒内暂时不可用,以节省电池电量。在此不活动期间,GPS提供商将自行关闭,GPS图标将消失 在我的代码中,我将minTime设置为大约30秒,但该提供程序每五分钟才暂时不可用一次。当它打开时,它最多只能暂时不可用十秒钟,然后才能重新打开。我知道这一点,因为GPS图标在再次出现之前仅消失10秒 我知道minTime设置只是Android位置提供商的一个粗略指南……

根据这篇文章(UPD:链接已删除,因为它现在会导致一些垃圾),在请求位置更新时设置minTime将导致提供商将自己设置为在minTime毫秒内暂时不可用,以节省电池电量。在此不活动期间,GPS提供商将自行关闭,GPS图标将消失

在我的代码中,我将minTime设置为大约30秒,但该提供程序每五分钟才暂时不可用一次。当它打开时,它最多只能暂时不可用十秒钟,然后才能重新打开。我知道这一点,因为GPS图标在再次出现之前仅消失10秒

我知道minTime设置只是Android位置提供商的一个粗略指南……但我很确定5分钟和30秒是完全不同的。有人知道这里发生了什么吗?minTime和RequestLocationUpdate实际上是如何工作的

LocationManager设置:

本地侦听器:

public void onLocationChanged(Location loc) {
    //Keep track of best location
    //Having a location > no location
    if (bestLocation == null)
        bestLocation = loc;
    //More accuracy > Less accuracy
    else if (loc.getAccuracy() <= bestLocation.getAccuracy())
        bestLocation = loc;

    Log.d(TAG, "Location Updated";
}
public void onStatusChanged(String provider, int status, Bundle extras) {
    Log.d(TAG, "New status: " + status);
    if (status== LocationProvider.TEMPORARILY_UNAVAILABLE)
        //Do stuff since the provider is temporarily off
}
从:

“后台服务应小心设置足够高的minTime,这样设备就不会因为一直打开GPS或无线收音机而消耗太多的电能。特别是,值不建议低于60000ms。”(重点是我的)

“此字段仅用作提示以节省电源,位置更新之间的实际时间可能大于或小于此值。”(重点是我的)


如果您需要立即知道位置,请使用

您是否尝试增加MindDistance参数?另一方面,minTime应该在minDistance之前考虑。所以这可能不是…--
public void onLocationChanged(Location loc) {
    //Keep track of best location
    //Having a location > no location
    if (bestLocation == null)
        bestLocation = loc;
    //More accuracy > Less accuracy
    else if (loc.getAccuracy() <= bestLocation.getAccuracy())
        bestLocation = loc;

    Log.d(TAG, "Location Updated";
}
public void onStatusChanged(String provider, int status, Bundle extras) {
    Log.d(TAG, "New status: " + status);
    if (status== LocationProvider.TEMPORARILY_UNAVAILABLE)
        //Do stuff since the provider is temporarily off
}
Location Updated
Location Updated
New status: 2
Location Updated
Location Updated
Location Updated
New status: 2
... (five minutes later)
New status: 1