Calculating remaining time of battery live

2020-02-12 08:35发布

Is it possible to calculate remaining battery time in hours and minutes? Also, would it be able to calculate this time depending on if I'm using a certain app? Is it even possible to get such information? If you could please give me advice on how to do that, I'd be very thankful.

3条回答
Deceive 欺骗
2楼-- · 2020-02-12 08:56

Estimating the remaining battery life is based on analytics. As the other people said you have to listen for battery level changes and in addition you have to keep track of them. After some time you will have enough data to calculate what is the average time the battery lasts. In addition you know when the battery drains fast and when drains slow so you can improve your estimation based on this. Also you will know in what time the user charges the devices. There are a lot of events that can be tracked and using the battery level. In addition you can also track when the screen is on or off. The algorithm of calculating the remaining battery life depends on you :)

I hope this explains (at least a bit) the idea of the estimation the battery life.

查看更多
地球回转人心会变
3楼-- · 2020-02-12 08:58

I don't know the code, but I can help you the logic/formula for this question:

  1. Collect all information from the battery statistics, and count the usage in total. Then calculate the usage per second, how much the battery was drained per second.
  2. Get the battery capacity in mAh, and calculate the remaining live with this formula: total capacity per speed of the usage.

Oddly enough, for some battery app developers know the code, such as DU Battery Saver.

查看更多
放荡不羁爱自由
4楼-- · 2020-02-12 09:02

You can use BatteryManager library to checkout the battery status with EXTRA_LEVEL:

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);

Unfortunately, you can get the remaining time only with approximation because some apps may consume more power.

Cheers

查看更多
登录 后发表回答