如何在android中访问电池的剩余时间

时间:2014-05-14 09:46:16

标签: android

我正在制作一个计算电池电量的项目

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        batteryStatus = this.registerReceiver(null, ifilter);
        level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 

使用此代码,我知道当前的电池电量是多少。 我想知道,查找和显示我的项目,在这个电池剩余水平与运行的服务什么是电池的剩余时间,以小时和分钟为单位 如果我正在听歌曲,播放视频或访问互联网,那么剩余的电池剩余时间。 如果手机处于待机模式等,电池剩余时间是什么

所以任何建议我怎么计算这个?

1 个答案:

答案 0 :(得分:3)

不幸的是,解决方案并不是一个简单的答案。

没有真正的方法来计算当前电池电量剩余多长时间,应用可能会在不同时间使用不同的电量,这意味着剩余时间的计算可能存在偏差。

我能看到你产生一个可靠时间的唯一方法是尽可能多地采样电池,并保持电池放电量的时间偏移。在足够的样本后,您将能够更好地估计在x分钟内放电的电池量。

编辑:要稍微扩展一下,您可能会获得更新(A),然后再获得另外两个更新(B,C)。这些更新可能会在某些类型的集合中存储时间,然后您可以使用逻辑来计算从已存储的样本生成的时间之间的平均损失。

此解决方案仍无法提供完全准确的结果。