根据这篇文章(UPD:链接已删除,因为它现在会导致一些废话),设置minTime当请求位置更新时将导致提供程序将自身设置为 TEMPORARILY_UNAVAILABLEminTime毫秒以节省电池电量。在此不活动期间,GPS 提供商将自行关闭,并且 GPS 图标将消失。
在我的代码中,我将 minTime 设置为大约 30 秒,但提供程序仅每五分钟变为 TEMPORARILY_UNAVAILABLE 一次。当它发生时,它最多只会保持 TEMPORARILY_UNAVAILABLE 十秒钟,然后再重新打开。我之所以知道这一点,是因为 GPS 图标只消失了十秒钟,然后又重新出现。
据我了解,minTime设置只是 Android 位置提供程序的粗略指导...但我很确定 5 分钟与 30 秒完全不同。有谁知道这是怎么回事?如何minTimerequestLocationUpdates 真的有效吗?
位置管理器设置:
locManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,30000L, 0, locListener);
本地监听器:
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
}
在真实 Android 设备 (HTC Incredible 2.2) 上调试输出:
Location Updated
Location Updated
New status: 2
Location Updated
Location Updated
Location Updated
New status: 2
... (five minutes later)
New status: 1