RK-3576-Android15-删除下拉状态栏的省电模式和钱包

提示:删除下拉状态栏的省电模式和钱包


一、需求

去掉下拉框 钱包、省电模式。

**场景:**产品都是定制化产品,客户实际基本国内产品、走电商形式。 没有钱包一说,用电模式先不管是否有省电模式一说。受众群体没有这个习惯,机器定制化过程中可能也没有这个功能。

**搞清楚需要解决哪些问题:**去除哪些UI:如下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结:
所以,需要改得有哪些呢? 三个方面:

  • SystemUI 下拉显示
  • 系统设置里面 搜索索引
  • 系统设置-电池界面-去掉省电模式

二、参考资料

Android系统去掉WIFI模块

    很早之前的一篇记录,删除SystemUI WIFI模块,就是去WIFI模块里面有相关参考资料,其实核心逻辑一模一样,修改地方其实都一致,有一定的参考价值。

三、修改文件-实现方案

修改文件

\frameworks\base\packages\SystemUI\res\values\config.xml
/packages/apps/Settings/res/xml/power_usage_summary.xml
/packages/apps/Settings/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java

实现方案

SystemUI 去钱包-省电模式

SystemUI
相关知识,务必做到基本流程了解、概念、架构、布局,方便实现基础功能和理解业务修改。
参考资料:截屏功能添加中的SystemUI基础描述 Android系统去掉WIFI模块

熟悉了SystemUI后,这个需求就简单了,在QS面板里面不添加不就行了吗。找到QSTitle 默认配置的地方
\frameworks\base\packages\SystemUI\res\values\config.xml

<string name="quick_settings_tiles_default" translatable="false">
    internet,bt,flashlight,dnd,alarm,airplane,controls,rotation,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.v33.SafetyCenterQsTileService)
</string>
<!-- delete   wallet ,battery -->


<!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
<string name="quick_settings_tiles_stock" translatable="false">
    internet,bt,flashlight,dnd,alarm,airplane,controls,rotation,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness,qr_code_scanner,onehanded,color_correction,dream,font_scaling,record_issue,hearing_devices
</string>
<!-- delete  wallet ,battery  -->

设置-去省电模式

这里其实有两处地方需要修改,ITEM 去除和搜索索引去除

去除ITEM 省电模式
找对应的界面-省电模式

如下,进入界面,查看界面Fragment
在这里插入图片描述
在这里插入图片描述

查看关联的布局,如下;

 @Override
    protected int getPreferenceScreenResId() {
        return R.xml.power_usage_summary;
    }
布局-power_usage_summary-去除item 项

从源码看,大概设这里
在这里插入图片描述

验证title: battery_saver,那就是 省电模式
在这里插入图片描述

直接屏蔽这部分代码如下:

   <!-- <Preference
        android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings"
        android:key="battery_saver_summary"
        android:title="@string/battery_saver"
        settings:keywords="@string/keywords_battery_saver"
        settings:controller="com.android.settings.fuelgauge.BatterySaverController" />-->
去除索引搜索项目

这里就直接找 对应的Fragment,如下的fragment :
注意: 虽然 我们索引中 - 省电模式 点击跳转到如下 PowerUsageSummary,但是实际索引的编码是哪个,是item 对应的Fragment ,所以:实际去掉索引的应该是 BatterySaverSettings

在这里插入图片描述

修改如下:屏蔽索引 即可

在这里插入图片描述

四、实际效果查看

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


总结

根据这个需求实现,这里其实要掌握三个知识点:

  • SystemUI 去除 item ,也就是去除 quickTitle 的方法,去配置文件中直接去掉即可。
  • 系统设置,去掉某一个item ,常规思路要明确,大部分静态配置item 就是这么干的。
  • 不分涉及到索引的,知道如何去掉搜索的索引。
<think>首先,用户的问题是关于Android 12系统RK3399设备上,下拉状态栏显示不全的解决方案。用户提供的引用是关于状态栏导航栏控制的修改,包括隐藏导航栏、除快捷图标等,但这些引用是针对不同版本的Android(如Android 14、8.1、11、7.1),我需要基于这些信息来帮助解决问题。 关键点: - 用户的问题:下拉状态栏显示不全(可能意味着部分内容未显示或布局问题)。 - 设备:RK3399处理器,运行Android 12系统- 用户提供的引用涉及状态栏导航栏的控制修改,但版本不同,我需要推断或提取相关思路。 从引用中提取相关信息: - 引用[1]:RK3576 Android14的状态栏导航栏手动控制,包括锁屏后下拉状态栏的屏蔽。 - 引用[2]:RK3399Pro Android 8.1上定制系统导航栏状态栏,隐藏返回键、HOME键、MENU键,取消上部导航栏下拉功能。 - 引用[3]:RK3568 Android11状态栏导航栏增加显示控制功能,通过device.mk设置属性。 - 引用[4]:RK3399 Android7.1掉顶部下拉状态栏中的快捷图标,通过修改SystemUI的config.xml文件。 用户的问题是Android 12上的下拉状态栏显示不全,可能与布局、系统UI或配置相关。 可能的解决方法: 1. **检查布局问题**:Android 12可能有新的UI变化。下拉状态栏显示不全可能是因为分辨率、DPI设置或布局文件错误。 2. **修改SystemUI**:参考引用[4],修改SystemUI的XML文件可能是关键。在Android中,状态栏的行为通常在frameworks/base/packages/SystemUI中定义。 3. **属性控制**:引用[3]提到通过device.mk设置属性来控制状态栏导航栏显示。类似地,Android 12可能有相关属性。 4. **调试系统UI**:下拉状态栏显示不全可能涉及系统UI的bug或自定义问题。 由于用户的问题具体是RK3399设备,我需要考虑Rockchip平台的特定修改。Rockchip设备通常有自定义的BSP(Board Support Package),所以解决方案可能需要修改设备特定的代码。 结构化回答: - **步骤1:确认问题**:用户描述下拉状态栏显示不全,可能是部分图标缺失、布局裁剪或其他问题。需要更多细节,但基于常见问题,可能是SystemUI配置问题。 - **步骤2:参考类似修改**:尽管引用是针对旧版本,但Android系统UI修改原理类似。 - 修改配置文件:如引用[4]所示,修改SystemUI/res/values/config.xml或其他XML文件。 - 设置系统属性:如引用[3],在device.mk或build.prop中设置属性。 - **步骤3:针对Android 12**:Android 12引入了Material You设计,状态栏可能有变化。查找RK3399的Android 12 BSP中SystemUI部分。 - **步骤4:具体代码路径**: - 状态栏下拉菜单的布局可能在frameworks/base/packages/SystemUI/res/layout/ 目录下,如notification_panel.xml等。 - 配置文件如config.xml定义默认设置。 - **步骤5:测试调试**:建议用户检查日志,查看是否有错误信息。 基于引用[4],解决显示不全可能涉及修改config.xml中的quick_settings_tiles_default,但用户说的是显示不全,而不是除图标。可能需要调整布局或尺寸。 用户可能是开发者在定制ROM,所以我需要提供修改代码的建议。 生成相关问题:指令要求生成相关问题,基于用户的查询。 最终回答结构: 1. **解释问题**:简要说明可能的原因。 2. **提供解决方案**:分步建议,包括代码修改路径。 3. **引用相关引用**:自然地引用提供的引用。 4. **生成相关问题**:在末尾添加相关问题列表。 相关问题想法: 1. 如何调试Android系统UI显示问题? 2. RK3399 Android 12 BSP定制指南? 3. 修改Android状态栏布局的最佳实践? 确保回答用中文,符合指令。 </think>基于您的查询,关于Android 12系统RK3399设备上下拉状态栏显示不全的问题,我会结合您提供的引用信息Android系统开发的通用知识,给出一个结构化的解决方案。下拉状态栏显示不全(如部分图标缺失、布局裁剪或无法完全展开)通常源于系统UI(SystemUI)的配置错误、布局文件问题或硬件兼容性设置。以下参考了您提供的引用(尤其是针对Rockchip平台的修改经验),逐步解释原因解决方法。 ### 1. **问题原因分析** - **常见原因**:在RK3399设备上,下拉状态栏显示不全可能由以下因素引起: - **布局文件错误**:Android 12的SystemUI布局文件(如`notification_panel.xml`)可能因分辨率或DPI适配不当导致渲染异常。Rockchip BSP(Board Support Package)有时需要自定义调整。 - **配置文件设置**:`config.xml`中定义的快捷图标列表或尺寸参数不正确(引用[4]中展示了类似修改)。 - **系统属性冲突**:设备属性(如`persist.sys.statusbar.enable`)未正确设置或与Android 12的新特性冲突(引用[3]提到了属性控制)。 - **硬件兼容性问题**:RK3399的GPU驱动或屏幕规格可能导致UI渲染不全,尤其在升级到Android 12后。 - **Android 12特有变化**:Android 12引入了全新UI设计(Material You),状态栏默认高度布局可能变化,需针对RK3399平台适配。 - **您的引用启示**:引用[2][4]涉及状态栏定制(如除快捷图标),引用[3]强调属性控制,这些方法可迁移到Android 12,但需适配版本差异。显示不全问题更可能源于布局或渲染层,而非简单隐藏功能。 ### 2. **解决方案步骤** 解决此问题需修改Android系统源码(AOSP)并重新编译系统镜像。以下是针对RK3399 Android 12的分步指南,优先参考Rockchip BSP的代码路径。**注意:修改前请备份源码,并确保您有完整的编译环境。** #### **步骤1: 检查并修改SystemUI布局文件** 下拉状态栏的布局定义在SystemUI模块中。Android 12的核心文件是`notification_panel.xml`,需调整其尺寸参数。 - **代码路径**:`frameworks/base/packages/SystemUI/res/layout/notification_panel.xml` - **修改内容**: - 查找根布局元素(如`<com.android.systemui.qs.NotificationPanelView>`),检查其高度属性(`android:layout_height`)。显示不全通常是由于高度被固定或设置不当。尝试将其改为`match_parent`或增加具体值。 - 示例修改(参考引用[4]的XML修改逻辑): ```xml <!-- 原代码可能类似 --> <com.android.systemui.qs.NotificationPanelView android:layout_width="match_parent" android:layout_height="wrap_content" <!-- 可能导致显示不全 --> ... > <!-- 修改为 --> <com.android.systemui.qs.NotificationPanelView android:layout_width="match_parent" android:layout_height="match_parent" <!-- 或调整为具体dp值,如600dp --> ... > ``` - **验证**:在RK3399设备上,屏幕分辨率(如1920x1080)需与布局适配。如果状态栏高度默认值太小,可能导致内容裁剪。可在`dimens.xml`中调整(路径:`frameworks/base/packages/SystemUI/res/values/dimens.xml`),修改`status_bar_header_height`等参数。 #### **步骤2: 更新SystemUI配置文件** 引用[4]展示了修改`config.xml`以控制快捷图标,类似方法可解决布局问题。重点是检查图标列表UI开关。 - **代码路径**:`frameworks/base/packages/SystemUI/res/values/config.xml` - **修改内容**: - 确保`quick_settings_tiles_default`列表完整且无错误。Android 12默认包含更多图标(如WIFI、蓝牙),如果列表缺失条目,可能导致显示不全。 - 示例修改(确保所有必要图标都启用): ```xml <!-- 原代码 --> <string name="quick_settings_tiles_default" translatable="false">battery,dnd,airplane</string> <!-- 修改为完整列表(参考AOSP默认值) --> <string name="quick_settings_tiles_default" translatable="false">wifi,cell,battery,dnd,airplane,rotation,flashlight</string> ``` - **额外设置**:添加或修改状态栏高度属性,如: ```xml <dimen name="quick_settings_panel_height">600dp</dimen> <!-- 调整高度值 --> ``` - **Rockchip适配**:RK3399的BSP可能在`device/rockchip/common/overlay/frameworks/base/packages/SystemUI/res/values/config.xml`有覆盖层(overlay),优先修改此路径。 #### **步骤3: 设置系统属性控制** 引用[3]提到通过`device.mk`设置属性来控制状态栏显示,Android 12同样支持此方法。添加属性可强制UI渲染完整。 - **代码路径**:Rockchip设备特定的`device.mk`文件,例如`device/rockchip/rk3399/device.mk` - **修改内容**: - 添加或修改属性,确保状态栏启用且高度自适应: ```makefile PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.statusbar.enable=true \ persist.sys.ui.hw=true \ # 强制硬件加速渲染,改善兼容性 ro.sf.display_density=240 # 调整DPI以避免布局裁剪 ``` - **作用**:`persist.sys.statusbar.enable=true`确保状态栏功能完整(引用[3]类似),`ro.sf.display_density`调整屏幕密度防止UI溢出。 - **测试**:编译后刷入设备,通过`adb shell getprop`验证属性生效。 #### **步骤4: 调试验证** - **编译刷机**:修改后,使用Rockchip提供的编译脚本(如`./build.sh`)重新编译SystemUI模块或完整系统。刷机到RK3399设备测试。 - **日志分析**:如果问题依旧,连接ADB查看日志: ```bash adb logcat | grep SystemUI ``` 搜索错误如`View too large`或`layout error`。 - **备选方案**:如果以上无效,考虑RK3399的GPU驱动问题(常见于Mali GPU)。更新内核驱动或检查`surfaceflinger`日志。 ### 3. **注意事项** - **Android 12特异性**:Android 12的SystemUI有较大重构,建议参考Google AOSP源码(如`android-12.0.0_r1`标签)对比Rockchip BSP。Material You设计可能引入新约束。 - **风险提示**:修改系统源码需开发者权限,错误修改可能导致系统崩溃。确保从官方渠道获取RK3399 Android 12 BSP。 - **引用整合**:引用[1][2]强调状态栏控制功能,可扩展为添加自定义开关(如动态隐藏),但显示不全问题优先解决布局层[^1][^2][^3][^4]。引用[4]的XML修改是最直接参考。 如果提供更多细节(如截图或日志),我可进一步优化方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

野火少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值