LocationManager Criteria.POWER_LOW 的含义
Meaning of Criteria.POWER_LOW for LocationManager
Criteria class 没有详细记录。
有人可以解释一下 POWER_HIGH
和 POWER_LOW
究竟发生了什么变化吗?
是关于电池耗尽吗?
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
...
locationManager.requestSingleUpdate(criteria, locationListener, null);
更新:
我浏览了一些源代码。结果在我的示例中忽略了此参数,因为还设置了精度。
createFromDeprecatedCriteria()
在 LocationRequest.java
:
...
int quality;
switch (criteria.getAccuracy()) {
case Criteria.ACCURACY_COARSE:
quality = ACCURACY_BLOCK;
break;
case Criteria.ACCURACY_FINE:
quality = ACCURACY_FINE;
break;
default: {
if (criteria.getPowerRequirement() == Criteria.POWER_HIGH) {
quality = POWER_HIGH;
} else {
quality = POWER_LOW;
}
}
}
...
有许多不同的 LocationProvider(gps、网络、被动等)。 LocationManger 可以使用条件 class 根据您的要求自动 select 最佳供应商。
Criteria criteria = new Criteria();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setSpeedRequired(true);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
return locationManager.getBestProvider(criteria, true);
如何实际使用标准 class 可以在这里看到 here.
将电源要求设置为 Criteria.POWER_LOW
可能只会排除使用 GPS 定位提供程序的设备(因为它比其他被动类型使用更多的电池)。
Criteria class 没有详细记录。
有人可以解释一下 POWER_HIGH
和 POWER_LOW
究竟发生了什么变化吗?
是关于电池耗尽吗?
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
...
locationManager.requestSingleUpdate(criteria, locationListener, null);
更新: 我浏览了一些源代码。结果在我的示例中忽略了此参数,因为还设置了精度。
createFromDeprecatedCriteria()
在 LocationRequest.java
:
...
int quality;
switch (criteria.getAccuracy()) {
case Criteria.ACCURACY_COARSE:
quality = ACCURACY_BLOCK;
break;
case Criteria.ACCURACY_FINE:
quality = ACCURACY_FINE;
break;
default: {
if (criteria.getPowerRequirement() == Criteria.POWER_HIGH) {
quality = POWER_HIGH;
} else {
quality = POWER_LOW;
}
}
}
...
有许多不同的 LocationProvider(gps、网络、被动等)。 LocationManger 可以使用条件 class 根据您的要求自动 select 最佳供应商。
Criteria criteria = new Criteria();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setSpeedRequired(true);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
return locationManager.getBestProvider(criteria, true);
如何实际使用标准 class 可以在这里看到 here.
将电源要求设置为 Criteria.POWER_LOW
可能只会排除使用 GPS 定位提供程序的设备(因为它比其他被动类型使用更多的电池)。