做网站的图片尺寸怎么设定,wordpress 插件,wordpress 解析,什么是自主设计网站前言
Settings 类是一个用于访问和管理设备设置的关键类#xff0c;而作为系统开发人员#xff0c;经常需要用这个类来做一些系统设备设置#xff0c;而Settings里面存在着好几个处理不同领域的设备设置类#xff0c;那么如何才能结合自己的业务场景正确选择使用这些设备设…前言
Settings 类是一个用于访问和管理设备设置的关键类而作为系统开发人员经常需要用这个类来做一些系统设备设置而Settings里面存在着好几个处理不同领域的设备设置类那么如何才能结合自己的业务场景正确选择使用这些设备设置类呢这就需要我们先了解这些类的作用和使用场景本篇文章我们将会结合系统源码来梳理一下和Setting相关的知识。
一、Settings简介
在 Android 开发中Settings 类是用于访问和管理设备设置的核心类之一。它位于 android.provider 包中提供了静态常量和方法来操作三种不同类型的设备设置Settings类中存在着四个继承自NameValueTable的内部静态类。 base/core/java/android/provider/Settings.java public final class Settings {public static class NameValueTable implements BaseColumns {}public static final class System extends NameValueTable {}public static final class Secure extends NameValueTable {}public static final class Global extends NameValueTable {}public static final class Config extends NameValueTable {}
}Settings.System、Settings.Secure、Settings.Global、Settings.Config这四个内部类各自负责着不同类型的设备设置。
1、Settings.Global 作用用于管理设备的全局设置这些设置通常是跨所有用户的对所有应用程序可见且具有全局影响。 例子Wi-Fi状态、自动时间、ADB调试状态、USB调试状态等。
2、Settings.System 作用用于管理设备的系统设置包括控制设备的行为和外观。 例子屏幕亮度、声音设置、时钟格式、振动设置等。
3、Settings.Secure 作用用于管理设备的安全设置和用户首选项这些设置对用户的隐私和设备的安全性有直接影响。 例子设备的锁屏方式、帐户和同步设置、位置提供程序设置等。
4、Settings.Config 作用这是一个较为特殊的类用于读取和设置与设备配置相关的信息。 例子设备的本地化语言、地区、键盘设置等。 权限访问或修改这些配置通常需要相应的权限例如 CHANGE_CONFIGURATION。
二、Settings设备设置属性的读写
1、Settings.Global 权限访问或修改全局设置通常需要 WRITE_SETTINGS 权限所有的偏好设置对系统的所有用户公开第三方APP有读没有写的权限 对应xml路径/data/system/users/0/settings_global.xml
adb读写
settings get global 系统属性key 或者 settings list global |grep 系统属性key
settings put global 系统属性key 系统属性值
settings delete global 系统属性key 代码读写
Settings.Global.getLong(context.getContentResolver(), key, defaltValue);
Settings.Global.putLong(mContext.getContentResolver(), key, value);2、Settings.System 权限访问或修改某些系统设置可能需要 WRITE_SETTINGS 权限所有的偏好设置对系统的所有用户公开第三方APP有读没有写的权限 对应xml路径/data/system/users/0/settings_system.xml
adb读写
settings get system 系统属性key 或者 settings list system |grep 系统属性key
settings put system 系统属性key 系统属性值代码读写
Settings.System.getLong(context.getContentResolver(), key, defaltValue);
Settings.System.putLong(mContext.getContentResolver(), key, value);3、Settings.Secure 权限访问或修改某些安全设置可能需要 WRITE_SECURE_SETTINGS 权限安全性的用户偏好系统设置第三方APP有读没有写的权限。 对应xml路径/data/system/users/0/settings_secure.xml
adb读写
settings get secure 系统属性key 或者 settings list secure |grep 系统属性key
settings put secure 系统属性key 系统属性值代码读写
Settings.Secure.getLong(context.getContentResolver(), key, defaltValue);
Settings.Secure.putLong(mContext.getContentResolver(), key, value);