【定制Android系统】Android 7.1 在 user 版本中默认关闭 开发者选项 的总开关

本文介绍如何根据不同的构建类型(user或eng)调整Android系统的开发者选项默认显示状态及总开关的开启状态。通过在DevelopmentSettings.java中增加判断逻辑实现需求。

需求:user 版本中,Settings 中的开发者选项默认隐藏,且总开关默认关闭。eng 版本默认存在且默认打开总开关。
源码位置:packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
解决方案:
在 DevelopmentSettings.java 的 onResume() 函数中,做出如下修改。
源码是这么写的:

        final ContentResolver cr = getActivity().getContentResolver();
607        mLastEnabledState = Settings.Global.getInt(cr,
608                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
609        mSwitchBar.setChecked(mLastEnabledState);
610        setPrefsEnabledState(mLastEnabledState);
611
612        if (mHaveDebugSettings && !mLastEnabledState) {
613            // Overall debugging is disabled, but there are some debug
614            // settings that are enabled.  This is an invalid state.  Switch
615            // to debug settings being enabled, so the user knows there is
616            // stuff enabled and can turn it all off if they want.
617            Settings.Global.putInt(getActivity().getContentResolver(),
618                    Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
619            mLastEnabledState = true;
620            mSwitchBar.setChecked(mLastEnabledState);
621            setPrefsEnabledState(mLastEnabledState);
622        }
623        mSwitchBar.show();
624
625        if (mColorModePreference != null) {
626            mColorModePreference.startListening();
627            mColorModePreference.updateCurrentAndSupported();
628        }

在其中 的 第一个 if 语句中 加入 “eng”.equals(android.os.Build.TYPE) 即可。
修改后的源码如下:

        final ContentResolver cr = getActivity().getContentResolver();
607        mLastEnabledState = Settings.Global.getInt(cr,
608                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
609        mSwitchBar.setChecked(mLastEnabledState);
610        setPrefsEnabledState(mLastEnabledState);
611
612        if (mHaveDebugSettings && !mLastEnabledState && "eng".equals(android.os.Build.TYPE)) {
613            // Overall debugging is disabled, but there are some debug
614            // settings that are enabled.  This is an invalid state.  Switch
615            // to debug settings being enabled, so the user knows there is
616            // stuff enabled and can turn it all off if they want.
617            Settings.Global.putInt(getActivity().getContentResolver(),
618                    Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
619            mLastEnabledState = true;
620            mSwitchBar.setChecked(mLastEnabledState);
621            setPrefsEnabledState(mLastEnabledState);
622        }
623        mSwitchBar.show();
624
625        if (mColorModePreference != null) {
626            mColorModePreference.startListening();
627            mColorModePreference.updateCurrentAndSupported();
628        }

以上内容是我今天刚刚从网上查到并借鉴修改的。如果存在任何问题,请不吝赐教。

在rk3288芯片搭载Android 7.1系统中,更改开发者选项里不锁定屏幕默认打开状态可以通过以下几种可能的方法: #### 方法一:通过系统设置界面操作 一般可以进入手机的“设置” - “开发者选项”,在其中找到“不锁定屏幕”选项,手动将其关闭打开,以更改状态。不过这只是临时更改当前设备的设置,若要修改默认状态,这种方法可能无法直接实现。 #### 方法二:修改系统源码并重新编译 1. **定位相关代码文件** 开发者选项的配置通常与系统设置相关的源码文件有关。在Android系统中,可能涉及到的文件有`SettingsProvider`相关的数据库配置文件以及设置界面的布局和逻辑代码。 - 对于`SettingsProvider`,可以在`frameworks/base/packages/SettingsProvider`目录下查找。其中`Settings.System`类可能存储了开发者选项中相关的设置值。 - 界面布局和逻辑代码可能在`packages/apps/Settings`目录下。 2. **修改默认值** 假设通过查看代码,发现“不锁定屏幕”选项对应的设置键为`SETTING_KEY_DO_NOT_LOCK_SCREEN`(这只是示例,实际需要根据代码确定),可以在`SettingsProvider`的数据库初始化部分,修改该键的默认值。 例如,在相关的数据库初始化函数中找到类似如下代码: ```java // 原默认值设置 Settings.System.putInt(contentResolver, SETTING_KEY_DO_NOT_LOCK_SCREEN, 1); // 1 表示打开 // 修改为关闭默认值 Settings.System.putInt(contentResolver, SETTING_KEY_DO_NOT_LOCK_SCREEN, 0); // 0 表示关闭 ``` 3. **重新编译和刷机** 完成代码修改后,需要重新编译整个Android系统。编译完成后,通过合适的刷机工具(如SP Flash Tool等)将新的系统镜像刷入rk3288设备。 #### 方法三:使用ADB命令修改(临时修改) 如果只是想临时更改设备上“不锁定屏幕”的状态,可以使用ADB(Android Debug Bridge)命令。 - 连接设备到电脑,确保ADB工具已正确安装和配置。 - 打开命令行工具,输入以下命令: ```bash # 关闭不锁定屏幕 adb shell settings put system stay_on_while_plugged_in 0 # 打开不锁定屏幕 adb shell settings put system stay_on_while_plugged_in 3 ``` 这里`stay_on_while_plugged_in`的值`0`表示关闭不锁定屏幕,`3`表示在充电时不锁定屏幕(开发者选项中的“不锁定屏幕”可能与此相关)。但这种方法在设备重启后设置可能会恢复为默认状态。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海Enoch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值