RK Android7.1 电池电量 Android5.1 电池图标
一.adb查询电池信息
1 | adb shell dumpsys battery |
二.状态栏 电池图标
2.1.布局
frameworks\base\packages\SystemUI\res\layout\system_icons.xml
2.2.SystemUI
1 2 3 4 5 6 7 8 9 10 11 | diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java index 5047b78..c06abca 100755 --- a/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java @@ - 54 , 7 + 54 , 7 @@ public class BatteryMeterView extends ImageView implements mSlotBattery = context.getString( com.android.internal.R.string.status_bar_battery); - //setImageDrawable(mDrawable); + setImageDrawable(mDrawable); } |
2.3.healthd 电池电量强制100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | diff --git a/system/core/healthd/BatteryMonitor.cpp b/system/core/healthd/BatteryMonitor.cpp index 2ad37c1..10f81c5 100755 --- a/system/core/healthd/BatteryMonitor.cpp +++ b/system/core/healthd/BatteryMonitor.cpp @@ - 240 , 9 + 240 , 11 @@ bool BatteryMonitor::update( void ) { else props.batteryPresent = mBatteryDevicePresent; - props.batteryLevel = mBatteryFixedCapacity ? - mBatteryFixedCapacity : - getIntField(mHealthdConfig->batteryCapacityPath); + //props.batteryLevel = mBatteryFixedCapacity ? + //mBatteryFixedCapacity : + //getIntField(mHealthdConfig->batteryCapacityPath); + props.batteryLevel = 100 ; + props.batteryVoltage = getIntField(mHealthdConfig->batteryVoltagePath) / 1000 ; if (!mHealthdConfig->batteryCurrentNowPath.isEmpty()) |
Android5.1 电池图标
1.修改SystemUI目录下的 隐藏下拉的电池图标
frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarTransitions.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void init() { mLeftSide = mView.findViewById(R.id.notification_icon_area); mStatusIcons = mView.findViewById(R.id.statusIcons); mSignalCluster = mView.findViewById(R.id.signal_cluster); mBattery = mView.findViewById(R.id.battery); if (SystemProperties.get( "persist.sys.batteryhide" ).equals( "true" )) { mBattery.setVisibility(View.GONE); } mClock = mView.findViewById(R.id.clock); applyModeBackground(- 1 , getMode(), false /*animate*/ ); applyMode(getMode(), false /*animate*/ ); } |
2.隐藏下拉的电池百分比的显示
frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\StatusBarHeaderView.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | private void updateVisibilities() { if ( PhoneStatusBar.getSimSwitch() ) { int show = 0 ; if (mExpanded) { if (mAlarmShowing) { show = 2 ; } else { show = 1 ; } } mDateExpanded.setVisibility(show== 1 ?View.VISIBLE:View.INVISIBLE); mDateCollapsed.setVisibility(show== 2 ?View.VISIBLE:View.INVISIBLE); mAlarmStatus.setVisibility(show== 2 ?View.VISIBLE:View.INVISIBLE); mSettingsButton.setVisibility(View.INVISIBLE); mQsDetailHeader.setVisibility(View.INVISIBLE); mSystemIcons.setVisibility(View.INVISIBLE); mEmergencyCallsOnly.setVisibility(View.GONE); mBatteryLevel.setVisibility(View.GONE); mMultiUserSwitch.setVisibility(View.INVISIBLE); } else { mDateCollapsed.setVisibility(mExpanded && mAlarmShowing ? View.VISIBLE : View.INVISIBLE); mDateExpanded.setVisibility(mExpanded && mAlarmShowing ? View.INVISIBLE : View.VISIBLE); mAlarmStatus.setVisibility(mExpanded && mAlarmShowing ? View.VISIBLE : View.INVISIBLE); mSettingsButton.setVisibility(mExpanded ? View.VISIBLE : View.INVISIBLE); mQsDetailHeader.setVisibility(mExpanded && mShowingDetail? View.VISIBLE : View.INVISIBLE); mSystemIcons.setVisibility(View.VISIBLE); if (mSignalCluster != null ) { updateSignalClusterDetachment(); } mEmergencyCallsOnly.setVisibility(mExpanded && mShowEmergencyCallsOnly ? VISIBLE : GONE); //mBatteryLevel.setVisibility(mExpanded ? View.VISIBLE : View.GONE); 隐藏电池百分比 if (SystemProperties.get( "persist.sys.batteryhide" ).equals( "true" )){ mBatteryLevel.setVisibility(View.GONE); } else { mBatteryLevel.setVisibility(View.VISIBLE); } mMultiUserSwitch.setVisibility(View.VISIBLE); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】