如何通常以每个应用为基础访问电池和使用信息? 在我的S5& S2信息显示在“设置/电池”菜单中,但我在Android SDK文档中找不到任何参考信息。
答案 0 :(得分:1)
没有正规的'访问每个应用程序的电池使用情况。我知道 一些黑客,但它们很混乱,可能不适用于> = Android 4.4。
但是,您可以使用提供每个应用数据的调试时间工具。 ATT ARO是迄今为止最好的。
在全球电池使用方面,情况会好转。
从代码中的任何一点,您都可以通过以下方式获得当前的电池电量:
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if (level == -1 || scale == -1) {
return 40f; // or any other default
}
float batteryLevelPercent = level / (float)scale;
如果您对持续监控电池状态感兴趣,可以注册更换电池'接收器:
void registerBatteryStateListener() {
BroadcastReceiver batteryStateListener = new BroadcastReceiver() {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
@Override
public void onReceive(Context context, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.e("BatteryStat", "level = " + level + ", scale = " + scale);
}
};
IntentFilter changeFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryStateListener, changeFilter);
}
并为清单添加相关权限:
<uses-permission android:name="android.permission.BATTERY_STATS"></uses-permission>
请注意,ACTION_BATTERY_CHANGED是一个粘性意图。这意味着它将基本上永远运行。