gpt4 book ai didi

Android 应用程序电池监控

转载 作者:行者123 更新时间:2023-11-30 01:39:20 26 4
gpt4 key购买 nike

对于我的 Android 应用程序,我需要监控所有运行该应用程序的手机的电池消耗情况。在应用程序中需要有一个按钮来启动和停止监控,并且在监控停止后,电池监控输出应在手机本身上保存为 txt。我已经查看了 batterystats,但根据文档,监控过程是通过将设备连接到 PC 启动的,监控后重新连接设备并进行转储。

那么是否可以在不连接电脑的情况下启动和停止监控,并将输出保存在手机本地?

最佳答案

当有变化时,您可以使用广播接收器接收有关电池的信息。

 private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context ctx, Intent intent) {

mLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, Const.VALUE_UNSET);
mTemperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, Const.VALUE_UNSET);
mStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, Const.VALUE_UNSET);
mPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, Const.VALUE_UNSET);
mScale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, Const.VALUE_UNSET);
mHealth = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, Const.VALUE_UNSET);
mVoltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, Const.VALUE_UNSET);
mTechnology = intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
}

不要忘记在您的 Activity (或服务,如果它应该在后台运行)中注册(取消)注册接收器。

注册(onCreate/onStart...):

 registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

注销(onPause/onDestory):

unregisterReceiver(...)

写入文件应该不会太难,只需在此处搜索 SO 并且不要忘记设置权限(对于处理文件也是如此):

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

关于Android 应用程序电池监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704150/

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