【发布时间】:2019-01-04 11:41:52
【问题描述】:
我知道有很多这样的问题,但无论是否可能,我都需要一个具体的答案。
我想获取任何 Android 手机的当前可用电池电量(以 mAh 为单位)。这对我的项目至关重要。我试过 BatteryManager。
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);
它准确地提供了我需要的信息,但仅适用于某些设备。
我还尝试通过 Java 反射使用 PowerProfile。
public void getBatteryCapacity() {
Object mPowerProfile_ = null;
final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";
try {
mPowerProfile_ = Class.forName(POWER_PROFILE_CLASS)
.getConstructor(Context.class).newInstance(this);
} catch (Exception e) {
e.printStackTrace();
}
try {
double batteryCapacity = (Double) Class
.forName(POWER_PROFILE_CLASS)
.getMethod("getAveragePower", java.lang.String.class)
.invoke(mPowerProfile_, "battery.capacity");
Toast.makeText(OffloadeeActivity.this, batteryCapacity + " mAh",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
但它提供了总电池容量。我需要的是当前剩余的电池电量。 有什么通用的方法可以为每个设备获取它吗?任何图书馆也可以。
【问题讨论】:
-
@AkashPatel 我做到了,它正在工作。但并非适用于所有设备,在大多数设备中它返回 0。
-
这能回答你的问题吗? Get battery level and state in Android