在电池电量降至 0% 之前,我可以得到多少时间?使用aCountDownTimer
并计算电池消耗多少mAh的东西?有人可以帮我做吗?
2 回答
您无法准确猜测电池放电剩余多少时间,您可以进行一些估算。
您可以通过注册接收器进行操作,在广播接收器的帮助下获得电池寿命Intent.ACTION_BATTERY_CHANGED
battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
编辑:
您应该做的是定期获取battery_level
并检查每分钟/每小时消耗多少电池,并进行一些计算。
因此,如果您的电池电量为 80%,每小时减少 4%,您的电池续航时间预计为 20 小时
简短的回答:没有。
长答案:是的,你可以..但不是那么容易..因为你不知道设备一次消耗多少能量,你应该首先尝试找出它,然后使用该数据计算剩余时间...
正如您可能已经猜到的那样,一开始可能并不那么准确,但是您sample
越多,数据就越准确。所以在这里总结一下是您必须做的:
首先,当用户打开应用程序时,由于您没有足够的能源消耗数据,您应该只显示类似Calculating...
. 在这里,您应该决定有一个采样时间。这就像derivation
数学中的东西..
假设您的采样时间为 10 秒。(我猜你的实际应该更大。)
您应该有一个名为level1
.. 的变量。将当前级别保存到其中。等待sample time
现在为 10 秒的数量。现在将当前值保存到level2
.. 将level1 - level2
产品保存到另一个变量,例如consumed
.
现在这里是魔法。您知道 10 秒内消耗了多少电量(这是consumed
变量)。从现在开始,您可以使用该数据计算剩余时间。但请记住,它仍然是 10 秒。如果那个 10 秒的用户正在玩重度游戏,甚至设备处于待机状态怎么办?这就是为什么它不准确。但是直到现在..
您可以做的是将consumed
变量添加到名为 like 的数组sample_data
中。让该过程继续,每 10 秒对消耗进行一次采样并将其添加到数组中。您获得的数据越多,您的计算就越准确。
然后,您可以使用数组中样本的平均值轻松计算剩余时间.. Easy Peasy:p