我们使用安卓做一些行业产品,例如门禁机,考勤机等,需要长时间DC供电,并不需要电池,而不接电池系统会报电量为0%,使系统处于低电量模式,导致有些应用受阻,例如OTA升级,低电量图标也会让有些强迫症的人难受。我们要解决这个问题有以下方法
去掉电池图标
从android8.0起,电池是通过代码绘制的,并非往常版本是使用drawable下的图片直接显示,我们这里把电池显示代码去掉即可。
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -129,7 +129,7 @@ public class BatteryMeterView extends LinearLayout implements
getResources().getDimensionPixelSize(R.dimen.status_bar_battery_icon_height));
mlp.setMargins(0, 0, 0,
getResources().getDimensionPixelOffset(R.dimen.battery_margin_bottom));
- addView(mBatteryIconView, mlp);
+ //addView(mBatteryIconView, mlp);
固定电量显示
电量从/sys/class/power_supply节点上获取,我们只是不想让系统处于低电量模式,可以直接把电量值写死。
--- a/system/core/healthd/BatteryMonitor.cpp
+++ b/system/core/healthd/BatteryMonitor.cpp
@@ -208,9 +208,10 @@ bool BatteryMonitor::update(void) {
else
props.batteryPresent = mBatteryDevicePresent;
- props.batteryLevel = mBatteryFixedCapacity ?
- mBatteryFixedCapacity :
- getIntField(mHealthdConfig->batteryCapacityPath);
+ props.batteryLevel = 100;