可以在位置设置选项下的三种模式中获取用户选择的位置模式的信息
高精度
电池储蓄
仅限GPS
我想以编程方式检查用户是否选择了高精度模式,如果没有,则自动启用它.可能吗 ?请指教.
解决方法
从API级别19(Kitkat)可以获得设备的当前位置模式:
public int getLocationMode(Context context) { return Settings.Secure.getInt(activityUnderTest.getContentResolver(),Settings.Secure.LOCATION_MODE); }
这些是可能的返回值(见here):
0 = LOCATION_MODE_OFF
1 = LOCATION_MODE_SENSORS_ONLY
2 = LOCATION_MODE_BATTERY_SAVING
3 = LOCATION_MODE_HIGH_ACCURACY
所以你想要的东西
if(getLocationMode(context) == 3) { // do stuff }
不幸的是,您无法以编程方式设置位置模式,但您可以将用户直接发送到设置屏幕,他可以做到这一点:
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));