android 添加系统属性Settings.system

本文介绍了如何通过Android的Settings API来实现系统UI功能的设置管理,包括如何添加自定义设置项、设置读写权限及使用代码进行设置操作的方法。

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

今天需要通过Settings对系统UI功能进行设置管理;


简单做个记录,下面看如何处理;


1.frameworks/base/core/java/android/provider/Settings


添加你需要的name:

public static final String PHONE_NAME = "phone_name_status";

/**
 * M: CR ALPS02301563, for unread contacts num.
 * @hide
 */
public static final String CONTACTS_UNREAD_KEY = "com_android_contacts_mtk_unread";
/**


Settings添加权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />


通过代码设置,控件根据自己业务需求实现,下面只对主要代码参考:


Setting需设置代码设置如下:

ContentResolver resolver = mContext.getContentResolver();
if(value==0){
    Settings.System.putInt(resolver ,Settings.System.PHONE_NAME ,1);
}else {
    Settings.System.putInt(resolver,Settings.System.PHONE_NAME ,0);
}

下面是如何用来获取;


ContentResolver resolver = mContext.getContentResolver();
int value = Settings.System.getInt(resolver, Settings.System.PHONE_NAME , 1);
if (value != 0) {
    if (View.getVisibility() == View.GONE) {
        
   //这里就是你要干的事情;
    }else{
}

以上就写完了,权限貌似只有系统Settings才可以用设置,三方app好像不行;


微笑希望路过的同学,能给提供更好的建议和方法;



<think>我们正在处理一个关于Android系统设置默认值的问题。用户想知道在刷机时如何设置Settings.System的默认值。根据提供的引用,我们可以总结出以下方法: 1. **修改系统属性文件(default.xml)**:在Android系统中,可以通过在`default.xml`文件中添加字段的默认值来设置系统设置的初始值。编译系统后刷机,新增的设置字段就会生效(引用[1])。 2. **通过代码在系统启动时设置默认值**:在特定的系统广播接收器(如`RestoreRotationReceiver`)中,可以在系统启动时(或其他时机)通过代码设置默认值。例如,在`onReceive`方法中使用`Settings.Global.putInt`来设置全局设置的默认值(引用[2])。 3. **了解系统设置的存储位置**:系统设置(包括Settings.System)的存储位置,例如WiFi和蓝牙的配置信息存储在特定的XML文件中(引用[3])。但请注意,这些文件通常是在系统运行时生成的,而不是在刷机时直接设置。 对于刷机时设置Settings.System的默认值,最常用的方法是修改`default.xml`文件(通常位于`/packages/apps/Settings/res/values/`目录下)。因为Settings.System的设置属于系统设置,所以可以在该文件中添加`<integer>`, `<string>`, `<bool>`等类型的设置项。 **具体步骤**: 1. 找到`default.xml`文件(路径可能因Android版本而异,常见路径为`packages/apps/Settings/res/values/defaults.xml`或类似路径)。 2. 在文件中添加你需要的设置项。例如,要设置一个名为`screen_brightness`的整型默认值为100,可以添加: ```xml <integer name="screen_brightness">100</integer> ``` 3. 重新编译系统并刷机。 另外,如果设置项是系统属性System Properties),也可以通过`init`进程或`system_properties`文件来设置,但Settings.System通常不直接使用系统属性,而是通过ContentProvider存储在数据库中。 **注意**:在Android高版本中,有些设置可能被迁移到Settings.Global或Settings.Secure中,需要根据设置的类型选择正确的范围。Settings.System用于用户可修改的系统设置,如亮度、音量等。 **示例代码**(在`default.xml`中添加设置): ```xml <resources> ... 其他默认设置 ... <!-- 屏幕亮度默认值 --> <integer name="screen_brightness">100</integer> <!-- 是否开启自动旋转 --> <bool name="accelerometer_rotation">true</bool> </resources> ``` **另一种方法**:在系统启动时通过代码设置。例如,在系统启动完成的广播接收器中设置: ```java public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 设置Settings.System的默认值 Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 100); } } ``` 但这种方法需要在每次启动时都执行,且可能会被用户后续修改。 **总结**:刷机时设置默认值推荐使用修改`default.xml`文件的方法,因为这是系统初始化的默认值,不会在每次启动时覆盖用户设置(除非恢复出厂设置)。 §§相关问题§§ 1. 如何为Android系统添加一个新的设置项? 2.Android高版本中,修改系统默认设置的方法有什么变化? 3. Settings.System, Settings.Global和Settings.Secure有什么区别?</think>### 如何在刷机时设置 Android Settings.System 默认值 在 Android 系统开发中,设置 Settings.System 的默认值主要通过以下两种方法实现: #### 方法 1:修改 default.xml 配置文件(推荐) 这是最标准的设置默认值方式,修改后需重新编译系统: 1. 定位配置文件: `packages/apps/Settings/res/values/defaults.xml` 2. 添加默认值条目: ```xml <integer name="screen_brightness">80</integer> <!-- 屏幕亮度默认值 --> <bool name="haptic_feedback_enabled">true</bool> <!-- 触感反馈开关 --> ``` 3. 编译刷机: 修改后重新编译系统镜像并刷机,新设置项会自动生效[^1]。 > **原理**:系统首次启动时,`SettingsProvider` 会读取这些默认值写入系统数据库 `/data/system/users/0/settings_system.xml`[^3]。 #### 方法 2:在系统服务中动态设置 通过广播接收器在系统启动时注入默认值: ```java // 在系统服务(如 SystemUI)中添加 public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 设置屏幕旋转默认值 Settings.System.putInt( context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1 // 1=启用, 0=禁用 ); // 设置USB调试默认开启 Settings.Global.putInt( context.getContentResolver(), Settings.Global.ADB_ENABLED, 1 )[^2]; } } ``` > **注意**:需在 `AndroidManifest.xml` 注册 `BOOT_COMPLETED` 广播权限。 --- ### 关键注意事项 1. **作用域区分**: - `Settings.System`:用户级系统设置(亮度、铃声等) - `Settings.Global`:设备级全局设置(调试模式等) - `Settings.Secure`:安全敏感设置(位置服务等) 2. **存储位置**: ```bash /data/system/users/0/settings_system.xml # System设置 /data/misc/apexdata/com.android.settings/ # 高版本全局设置[^3] ``` 3. **版本兼容**: - Android 5.0+ 需检查 SELinux 策略 - Android 10+ 推荐使用 `DeviceConfig` API - 动态设置方法在高版本可能受限[^1] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值