我正在android studio中编写一个应用程序,类似于任务管理器,您可以在其中选择不同的正在运行的应用程序,然后您将获得该应用程序当前使用了多少电池(以mAh或%为单位)。例如,您可以选择 YouTube 应用程序并获取其电池使用情况。
我到处都搜索过,但找不到如何获取这些信息。我可以访问我的应用程序信息,但不能访问其他应用程序信息。 我想获取所选应用程序的 CPU 使用情况,但我也无法访问它。 我希望它适用于 Android 的最后三个版本,但欢迎任何解决方案。
我从事类似的项目已经有一段时间了,根据我的经验,没有合适的方法来做到这一点。您最好的选择可能是使用BatteryManager,并在使用您正在监控的应用程序时多次获取当前电池剩余电量。请记住,根据您使用的设备,BatteryManager 可能并不总是非常精确。
这是我在 Java 中获取当前剩余能量(以 mAh 为单位)的方法。
import android.os.BatteryManager;
import android.util.Log;
public long getPreciseEnergyCounter() {
BatteryManager mBatteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
Long energy = mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);
Log.d("energy", String.valueOf(energy));
return energy;
};
通过此功能,您可以获得应用程序运行时随时间消耗的能量的近似值。请注意,这将是设备的总消耗量,但我想您可以通过比较应用程序运行时和不运行时的放电率来估算应用程序的消耗量。