解决方法
从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));