gpt4 book ai didi

安卓电池/使用统计

转载 作者:行者123 更新时间:2023-11-30 02:49:28 24 4
gpt4 key购买 nike

如何访问电池和使用信息,一般和基于每个应用程序?在我的 S5 和 S2 上,信息显示在设置/电池菜单中,但我在 Android SDK 文档中找不到任何相关引用。

enter image description here

enter image description here

最佳答案

没有“正式”的方式来访问每个应用程序的电池使用情况。我知道一些 hack,但它们很乱,可能无法在 >= 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);
}

并在manifest中添加相关权限:

 <uses-permission android:name="android.permission.BATTERY_STATS"></uses-permission>

请注意,ACTION_BATTERY_CHANGED 是一个粘性 Intent 。这意味着它基本上会永远运行。

关于安卓电池/使用统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com