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);
    }
}

  

  

  

posted @   CrushGirl  阅读(624)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 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】
点击右上角即可分享
微信分享提示