修改Settting中的出厂默认值

本文解析了Android系统的设置数据库setting.db的生成方式及其内容组织。详细介绍了三个关键文件的作用:DatabaseHelper.java负责数据库生成,defaults.xml定义默认值,而setting.db则在启动时创建并存储系统设置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章内容来在 http://blog.youkuaiyun.com/zhangchiytu/article/details/6540292


          1. frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

          这个文件是用来生成setting.db的。

2.frameworks/base/packages/SettingsProvider/res/values/defaults.xml 

          一般把setting.db中各个表的出厂默认初始值放在这个文件中,在DatabaseHelper.java 中读取。

3./data/data/com.android.providers.settings/databases/setting.db

             此数据库文件是在开机初始化时生成的,而非编译生 成。手机文件系统下用来存储设置中值的数据库。

 

存储数据的表是system,字段是time_12_24

 

          读取其值:Settings.System.getString(context.getContentResolver(),Settings.System.TIME_12_24)

           设置其值: Settings.System.putString(getContentResolver(), Settings.System.TIME_12_24,is24Hour? HOURS_24 : HOURS_12)


`Settings.System.getString(this.getContentResolver(), APP_HIDE_LIST)` 这行代码是Android应用中从系统设置获取一个字符串值的操作。`Settings.System`是一个静态类,提供访问设备系统的各种设置信息;`getContentResolver()`是用来获取当前Context的ContentResolver,用于读取或修改系统内容;`APP_HIDE_LIST`则是你要获取的具体设置键名。 判断这个返回值是否为空,通常有几种常见的做法: 1. **直接检查**: ```java String value = Settings.System.getString(this.getContentResolver(), APP_HIDE_LIST); if (value != null && !value.isEmpty()) { // 使用值 } else { // 处理空值或异常情况 Log.d("TAG", "Value is empty or null"); } ``` 这里通过 `!= null` 和 `.isEmpty()` 来判断。 2. **使用Objects类**: Java 8引入了`Objects.requireNonNull`和`Objects.toString`可以简化判断: ```java String value = Objects.requireNonNull(Settings.System.getString(this.getContentResolver(), APP_HIDE_LIST)); if (!value.isEmpty()) { // 使用值 } else { throw new IllegalArgumentException("Value is null or empty"); } ``` 如果值为null,这会抛出一个异常。 3. **使用Optional类**: 如果在Java 8及以上版本,可以使用`Optional`类: ```java Optional<String> optional = Optional.ofNullable(Settings.System.getString(this.getContentResolver(), APP_HIDE_LIST)); optional.ifPresent(value -> {/* 使用值 */}) .orElseThrow(() -> new NullPointerException("Value is null")); ``` 这样可以优雅地处理可能的null值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值