以编程方式将位置模式更改为高精度Android

可以在位置设置选项下的三种模式中获取用户选择的位置模式的信息

高精度

电池储蓄

仅限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));

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...