我可以能够找到使用BatteryManager总电量百分比。如何实现的Android应用程序的电池使用的计算?
我试图执行逻辑电池消耗多少电量的每个应用程序,我打开,直到我关闭应用程序。
是否可以使用BatteryManger或其他任何需要启动的服务?
我可以能够找到使用BatteryManager总电量百分比。如何实现的Android应用程序的电池使用的计算?
我试图执行逻辑电池消耗多少电量的每个应用程序,我打开,直到我关闭应用程序。
是否可以使用BatteryManger或其他任何需要启动的服务?
这是因为在Android的电源管理API的调用是私营和不暴露给开发者。这些API只能通过思考。
Android内部使用的关于从电源管理获取统计信息的主要包保存在com.android.internal.os.*
(如com.android.internal.os.BatteryStatsImpl
)中。
StackOverflow用户Chris Thompson共享了一个存储库,其中包含用于处理所需内容的工具和应用程序。你可以找到它here。
你可以从他所做的事情中激发自己,并在此基础上构建一些东西。
此外,您似乎可以使用adb shell dumpsys batteryinfo
获得每个应用程序使用的高级电池统计数据和CPU负载。
一个简单的strace dumpsys batteryinfo
当你在adb shell
可能会给你一个提示如何检索这些信息dumpsys
。
您可以使用广播接收器获取有关电池数据的信息,我不知道您经常收到这些数据,但我认为至少它可能是一个起点。
public class Main extends Activity {
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
int level = intent.getIntExtra("level", 0);
//Do stuff with level
}
};
@Override
public void onCreate(Bundle data) {
super.onCreate(data);
setContentView(R.layout.main);
this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
}