我的应用使用BatteryManager.BATTERY_PROPERTY_CURRENT_NOW来获取设备的电池电流:

BatteryManager batteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
int current = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW), context);

但是,它不适用于例如Samsung Galaxy TabA。它仅返回0。

其他应用程序甚至在该设备上显示当前电流。他们是怎么做到的呢?我的方法有哪些替代方法?

最佳答案

根据您的问题(“仅返回0”),请查看有关getIntProperty的文档:
https://developer.android.com/reference/android/os/BatteryManager#getIntProperty(int)

如果不支持该属性或存在任何其他错误,请返回

(a)如果targetSdkVersion 为0

要么

(b)如果targetSdkVersion> = VERSION_CODES.P,则为Integer.MIN_VALUE。

09-17 17:55