关于系统属性设置Settings.System.putString

本文介绍了两种在Java中设置全局变量的方法:一种仅限于当前应用程序内有效;另一种则通过系统设置API写入数据库,使得变量可在不同应用程序间共享。
1. System.getProperties().setProperty("aaa", "true");
这种设置在本应用中可以拿的到值,但在其它应用中得到的为null

2. Settings.System.putString(getContentResolver(),"aaa", "true");
这种才会写入数据库,成为全局变量,在其它应用中也可以拿到值,使用相主的Settings.System.getString(getContentResolver(),“aaa”);
### Android Settings Global、System 和 Secure 的区别、用法及场景 在 Android 系统中,`Settings.Global`、`Settings.System` 和 `Settings.Secure` 是三种用于存储偏好设置的类型。它们的区别主要体现在权限控制、使用场景以及数据的安全性上。 #### 1. **Settings.Global** - **定义**: `Settings.Global` 存储的是对系统所有用户公开的全局偏好设置[^1]。 - **权限**: 第三方应用可以读取这些设置,但没有写入权限。只有系统级应用或具有特定权限的应用才能修改这些设置。 - **使用场景**: 这些设置通常与整个设备的状态相关,例如开发者选项中的调试功能、电池优化等。常见的键值包括: - `airplane_mode_on`: 飞行模式是否开启。 - `wifi_sleep_policy`: WiFi 睡眠策略。 - `stay_on_while_plugged_in`: 插电时屏幕是否保持亮起。 - **代码示例**: ```java // 获取全局设置值 String disableList = Settings.Global.getString(context.getContentResolver(), "disable_list"); // 设置全局设置值(需要 SYSTEM_SETTINGS 权限) Settings.Global.putString(context.getContentResolver(), "disable_list", "example_value"); ``` #### 2. **Settings.System** - **定义**: `Settings.System` 包含各种各样的用户偏好系统设置[^1]。 - **权限**: 第三方应用可以读取这些设置,但没有写入权限。某些特定设置可能需要 `WRITE_SETTINGS` 权限。 - **使用场景**: 这些设置通常与用户的日常操作相关,例如屏幕亮度、字体大小、壁纸等。常见的键值包括: - `screen_brightness`: 屏幕亮度。 - `font_scale`: 字体缩放比例。 - `wallpaper_change_on_boot`: 开机时是否更改壁纸。 - **代码示例**: ```java // 获取系统设置值 int brightness = Settings.System.getInt(context.getContentResolver(), "screen_brightness", 0); // 设置系统设置值(需要 WRITE_SETTINGS 权限) Settings.System.putInt(context.getContentResolver(), "screen_brightness", 100); ``` #### 3. **Settings.Secure** - **定义**: `Settings.Secure` 存储的是安全性的用户偏好系统设置。 - **权限**: 第三方应用可以读取这些设置,但没有写入权限。某些敏感设置可能需要额外的权限。 - **使用场景**: 这些设置涉及设备的安全性和隐私保护,例如锁屏密码、设备 ID 等。常见的键值包括: - `android_id`: 设备的唯一标识符。 - `lock_screen_owner_info`: 锁屏上的所有者信息。 - `location_providers_allowed`: 允许的位置提供程序。 - **代码示例**: ```java // 获取安全设置值 String androidId = Settings.Secure.getString(context.getContentResolver(), "android_id"); // 设置安全设置值(需要特殊权限) Settings.Secure.putString(context.getContentResolver(), "lock_screen_owner_info", "John Doe"); ``` ### 总结 - **Global**: 全局偏好设置,适用于所有用户,第三方应用只能读取。 - **System**: 用户偏好设置,涉及日常操作,第三方应用只能读取。 - **Secure**: 安全相关的设置,涉及隐私和安全性,第三方应用只能读取。 每种类型的设置都有其特定的用途和权限限制,开发者应根据实际需求选择合适的类型进行操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值