我正在尝试做的事情:
由于LOCATION_PROVIDERS_ALLOWED在 19 级已贬值API
,因此我尝试使用LOCATION_MODE来获取用户API
在 19 级以上启用的位置访问程度,如下所示:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
int locationMode;
try {
locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);
// Check if Location services in ON and if YES then make sure its in either HIGH_ACCURACY or POWER_SAVING mode (Not in GPS_ONLY)
switch (locationMode) {
case Settings.Secure.LOCATION_MODE_OFF:
//....
break;
case Settings.Secure.LOCATION_MODE_SENSORS_ONLY:
//....
break;
//....
}
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
}
问题:
现在,对于LOCATION_MODE,文档提到
注意:不要依赖于存在于相应 Uri 的通知中
settings.db
或通知中的此值。ContentObserver
据我了解,这意味着它使用起来不可靠LOCATION_MODE
。那么对于API
> 19,还有什么建议用于了解用户对应用程序允许的位置访问范围?