Android 10去除电池图标以及设置

1. 电池状态栏
a.主页右上角电池图标:

diff --git a/frameworks/base/packages/SystemUI/res/layout/system_icons.xml b/frameworks/base/packages/SystemUI/res/layout/system_icons.xml
index f3b72bf..563fe19 100644
--- a/frameworks/base/packages/SystemUI/res/layout/system_icons.xml
+++ b/frameworks/base/packages/SystemUI/res/layout/system_icons.xml
@@ -30,9 +30,10 @@
         android:orientation="horizontal"/>
 
     <com.android.systemui.BatteryMeterView android:id="@+id/battery"
+       android:visibility="gone"
         android:layout_height="match_parent"
         android:layout_width="wrap_content"
         android:clipToPadding="false"
         android:clipChildren="false"
         systemui:textAppearance="@style/TextAppearance.StatusBar.Clock" />


 

b.下拉菜单右上角的电池图标和电量显示:

diff --git a/frameworks/base/packages/SystemUI/res/layout/quick_qs_status_icons.xml b/frameworks/base/packages/SystemUI/res/layout/quick_qs_status_icons.xml
index 5b7e7e7..3dae473 100644
--- a/frameworks/base/packages/SystemUI/res/layout/quick_qs_status_icons.xml
+++ b/frameworks/base/packages/SystemUI/res/layout/quick_qs_status_icons.xml
@@ -49,6 +49,7 @@
         android:paddingEnd="@dimen/signal_cluster_battery_padding" />
 
     <com.android.systemui.BatteryMeterView
+       android:visibility="gone"
         android:id="@+id/batteryRemainingIcon"
         android:layout_height="match_parent"
         android:layout_width="wrap_content"


2. 下拉菜单中的省电模式(Smart saving mode)按钮
 

/frameworks/base/packages/SystemUI/res/values/config.xml 下面列表中删除 battery 相关

diff --git a/frameworks/base/packages/SystemUI/res/values/config.xml b/frameworks/base/packages/SystemUI/res/values/config.xml
index 53cdedd..c010c79 100644
--- a/frameworks/base/packages/SystemUI/res/values/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -111,7 +111,7 @@
 
     <!-- The default tiles to display in QuickSettings -->
     <string name="quick_settings_tiles_default" translatable="false">
-        volte1,volte2,wifi,bt,dnd,vowifi,lte1,lte2,flashlight,rotation,battery,cell,airplane,cast
+        volte1,volte2,wifi,bt,dnd,vowifi,lte1,lte2,flashlight,rotation,cell,airplane,cast
     </string>
 
     <!-- The minimum number of tiles to display in QuickSettings -->
@@ -119,7 +119,7 @@
 
     <!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
     <string name="quick_settings_tiles_stock" translatable="false">
-        volte1,volte2,wifi,cell,battery,dnd,vowifi,lte1,lte2,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,dark,work,cast,night,longscreenshot
+        volte1,volte2,wifi,cell,dnd,vowifi,lte1,lte2,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,dark,work,cast,night,longscreenshot
     </string>
 
     <!-- The tiles to display in QuickSettings -->
@@ -127,7 +127,7 @@
 
     <!-- The tiles to display in QuickSettings in retail mode -->
     <string name="quick_settings_tiles_retail_mode" translatable="false">
-        volte1,volte2,cell,battery,dnd,vowifi,lte1,lte2,flashlight,rotation,location
+        volte1,volte2,cell,dnd,vowifi,lte1,lte2,flashlight,rotation,location
     </string>
 
     <!-- Whether or not the RSSI tile is capitalized or not. -->
@@ -446,7 +446,7 @@
     <bool name="config_status_bar_ampm">true</bool>
 
     <!-- Bug 1072082 battery animation -->
-    <bool name="config_battery_animation">true</bool>
+    <bool name="config_battery_animation">false</bool>
 
     <!-- Smart replies in notifications: Whether smart replies in notifications are enabled. -->
     <bool name="config_smart_replies_in_notifications_enabled">true</bool>

3. 设置->电池选项
注意这个修改,Android Q 与之前版本有不同之处,Android Q 已经将设置中的一级菜单的显示都放到 config.xml 文件中了,非常方便用户自定义。

如下将 true 改为 false 后即可。

diff --git a/packages/apps/Settings/res/values/config.xml b/packages/apps/Settings/res/values/config.xml
index 5eb55ae..114b89f 100755
--- a/packages/apps/Settings/res/values/config.xml
+++ b/packages/apps/Settings/res/values/config.xml
@@ -281,7 +281,7 @@
     <bool name="config_show_app_info_settings_memory">false</bool>
 
     <!-- Whether battery from app_info_settings is available or not. -->
-    <bool name="config_show_app_info_settings_battery">true</bool>
+    <bool name="config_show_app_info_settings_battery">false</bool>
 
     <!-- Whether location mode is available or not. -->
     <bool name="config_location_mode_available">true</bool>
@@ -386,7 +386,7 @@
     <bool name="config_show_top_level_accessibility">true</bool>
 
     <!-- Whether top_level_battery should be shown or not. -->
-    <bool name="config_show_top_level_battery">true</bool>
+    <bool name="config_show_top_level_battery">false</bool>
 
     <!-- Whether top_level_connected_devices should be shown or not. -->
     <bool name="config_show_top_level_connected_devices">true</bool>

4. 电池状态监听注册模块
 

diff --git a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
index 1de4579..d3baf2f 100644
--- a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
+++ b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
@@ -475,7 +475,7 @@ public class SettingsActivity extends SettingsBaseActivity
         LocalBroadcastManager.getInstance(this).registerReceiver(mDevelopmentSettingsListener,
                 new IntentFilter(DevelopmentSettingsEnabler.DEVELOPMENT_SETTINGS_CHANGED_ACTION));
 
-        registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+        //registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
 
         updateTilesList();
     }





diff --git a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
index d3baf2f..cfda6da 100644
--- a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
+++ b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
@@ -485,7 +485,7 @@ public class SettingsActivity extends SettingsBaseActivity
         super.onPause();
         LocalBroadcastManager.getInstance(this).unregisterReceiver(mDevelopmentSettingsListener);
         mDevelopmentSettingsListener = null;
-        unregisterReceiver(mBatteryInfoReceiver);
+        //unregisterReceiver(mBatteryInfoReceiver);
     }
 
     @Override

参考:https://blog.csdn.net/shenfengchen/article/details/112943789

<think>嗯,用户的问题是关于RK3588平台上电池图标的设计和实现方法,特别是如何去掉电池图标。首先,我需要回想一下之前看到的引用内容。引用[1]提到在RK3588 Android13系统中去掉电池图标,涉及到系统界面修改。引用[2]提到了SystemUI中的布局文件system_icons.xml,这可能和电池图标的UI有关。引用[3]则讨论了去掉SystemUI中的快速设置选项,说明修改SystemUI布局或代码是常见做法。 首先,用户的需求是找到电池图标的设计或实现方法,可能他们想要自定义或者隐藏电池图标。根据引用中的信息,修改SystemUI的布局文件可能是关键。需要检查system_icons.xml,找到电池图标的控件,比如BatteryMeterView或者相关的ImageView,然后将它们的可见性设置为GONE或者移除相关代码。 另外,代码层面可能需要修改SystemUI中的BatteryController或相关类,比如注释掉更新电池状态的代码,防止系统继续显示图标。同时,资源文件可能需要调整,比如隐藏电池百分比或其他相关元素。 需要注意不同Android版本的路径可能不同,用户提到的是Android13,所以路径应该是frameworks/base/packages/SystemUI/...。另外,编译系统后需要重新刷机,测试是否生效。还要考虑是否有其他模块依赖电池状态,避免系统不稳定。 用户可能还想知道如何自定义电池图标样式,比如修改图标形状或颜色,这需要替换drawable资源,并调整布局参数。但用户当前的问题主要是隐藏图标,所以重点放在如何移除现有图标上。 总结步骤:1. 修改布局文件隐藏电池控件;2. 调整代码逻辑阻止电池状态更新;3. 检查资源文件是否有其他相关元素;4. 编译并测试。需要确保用户了解修改系统代码的风险,比如需要重新编译系统镜像,可能需要root权限或厂商支持。</think>### RK3588电池图标设计与实现方法 针对RK3588平台的电池图标设计及实现,主要涉及Android系统层级的UI修改,以下是具体步骤和实现原理: #### 一、电池图标布局定位 1. **SystemUI布局文件** 电池图标定义在SystemUI的布局文件中: ```xml frameworks/base/packages/SystemUI/res/layout/system_icons.xml ``` 找到`BatteryMeterView`或`ImageView`相关控件,例如: ```xml <com.android.systemui.BatteryMeterView android:id="@+id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 可通过设置`android:visibility="gone"`隐藏控件[^2]。 #### 二、代码逻辑修改 2. **电池状态控制器** 在SystemUI的Java代码中,电池状态更新逻辑位于: ```java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java ``` 注释或删除`updateBattery()`方法中的图标刷新逻辑: ```java // mIconView.setImageDrawable(mBatteryIcon); ``` #### 三、资源文件调整 3. **隐藏电量百分比** 若需隐藏电量百分比文本,修改`battery_percentage.xml`: ```xml <com.android.systemui.BatteryPercentageView android:visibility="gone" /> ``` #### 四、编译与验证 ```bash # 全量编译命令 make -j8 # 单独编译SystemUI模块 mmm frameworks/base/packages/SystemUI/ ``` 编译后刷机验证,需注意修改可能影响OTA升级兼容性[^1]。 #### 五、自定义图标样式(可选) 1. **替换图标资源** 电池图标Drawable文件位于: ```bash frameworks/base/packages/SystemUI/res/drawable-[hdpi|xhdpi|xxhdpi]/stat_sys_battery.xml ``` 可修改`<layer-list>`中的图层实现自定义样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值