SettingsProvider介绍和使用

可以参考地址:https://blog.csdn.net/myfriend0/article/details/59107989#查询数据


1.用法

//put get

android.provider.Settings.Global.putInt(context.getContentResolver(),
        android.provider.Settings.Global.AUTO_TIME, checked);
int state = Settings.System.getInt(context.getContentResolver(), Settings.System.AUTO_TIME, 1);

2.权限问题

查阅SettingsProvider的设置项不需要声明任何权限。

修改SettingsProvider需要权限:

  • android.permission.WRITE_SETTINGS,Protection level: signature
  • Secure数据:android.permission.WRITE_SECURE_SETTINGS,Not for use by third-party applications.

对已Global和Secure模块,还需要关心上文中的isGlobalOrSecureSettingRestrictedForUser()方法设置到的限制

3.数据分类

SettingsProvider对数据进行了分类,分别是Global、System、Secure三种类型,它们的区别如下:

  • Global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;
  • System:包含各种各样的用户偏好系统设置;
  • Secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。

4.命令查询和设置用法

(主要用于调试和便于bug分析)

#获取亮度是否为自动获取

adb shell settings get system screen_brightness_mode
#设置亮度值

adb shell settings put system screen_brightness 150

5.生成数据库位置

Android6.0之后再/data/system/users/0/xxx.xml

settings_global.xml
settings_secure.xml
settings_system.xml
wallpaper_info.xml
root@root:/data/system/users/0 # 

之前应该在data/data/com.android.providers.settings/databases/settings.db才对


你可能感兴趣的:(Android)