Android - 确定剩余电池寿命的数量

时间:2013-08-02 01:24:27

标签: android batterylevel

有没有办法准确地确定电池剩余电量(以小时/分钟为单位)?

我知道我可以注册一个Intent接收器来接收ACTION_BATTERY_CHANGED的广播并获得级别和比例并使用它们来获得这样的百分比:

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

我的猜测是它需要很多不同的变量(电池类型,处理器,运行的应用程序数量,显示亮度等),但我只是想确定我没有忽略任何东西。

有没有人知道是否有可能获得这个细节或建议在哪里/如何开始?

1 个答案:

答案 0 :(得分:2)

就我个人而言,我认为考虑到电池的类型,处理器和运行的应用程序数量是过度的。无论品牌如何,所有物理硬件都将具有不同的性能(尤其是电池)。此外,不同的连接和流程将根据其质量消耗更多或更少的电池。

无法确定用户将启动哪种应用程序以及它们将运行多长时间(即,您的用户可能会通过wifi观看10分钟的youtube,或尝试观看90分钟的变化信号强度数据连接)。

如果我这样做,我会每隔几分钟测量一次电池寿命的燃烧率,并使用一些多项式数学来估计趋势。

维基百科不是学习数学的最佳场所,但如果想了解有关趋势线如何运作的信息,请从这里开始: http://en.wikipedia.org/wiki/Linear_regression#Trend_line

这只是我对你情况的看法......希望它有所帮助。