0

在电池电量降至 0% 之前,我可以得到多少时间?使用aCountDownTimer并计算电池消耗多少mAh的东西?有人可以帮我做吗?

4

2 回答 2

2

您无法准确猜测电池放电剩余多少时间,您可以进行一些估算。

您可以通过注册接收器进行操作,在广播接收器的帮助下获得电池寿命Intent.ACTION_BATTERY_CHANGED

battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

编辑:

您应该做的是定期获取battery_level并检查每分钟/每小时消耗多少电池,并进行一些计算。

因此,如果您的电池电量为 80%,每小时减少 4%,您的电池续航时间预计为 20 小时

于 2013-07-03T11:15:23.213 回答
1

简短的回答:没有。

长答案:是的,你可以..但不是那么容易..因为你不知道设备一次消耗多少能量,你应该首先尝试找出它,然后使用该数据计算剩余时间...

正如您可能已经猜到的那样,一开始可能并不那么准确,但是您sample越多,数据就越准确。所以在这里总结一下是您必须做的:

首先,当用户打开应用程序时,由于您没有足够的能源消耗数据,您应该只显示类似Calculating.... 在这里,您应该决定有一个采样时间。这就像derivation数学中的东西..

假设您的采样时间为 10 秒。(我猜你的实际应该更大。)

您应该有一个名为level1.. 的变量。将当前级别保存到其中。等待sample time现在为 10 秒的数量。现在将当前值保存到level2.. 将level1 - level2产品保存到另一个变量,例如consumed.

现在这里是魔法。您知道 10 秒内消耗了多少电量(这是consumed变量)。从现在开始,您可以使用该数据计算剩余时间。但请记住,它仍然是 10 秒。如果那个 10 秒的用户正在玩重度游戏,甚至设备处于待机状态怎么办?这就是为什么它不准确。但是直到现在..

您可以做的是将consumed变量添加到名为 like 的数组sample_data中。让该过程继续,每 10 秒对消耗进行一次采样并将其添加到数组中。您获得的数据越多,您的计算就越准确。

然后,您可以使用数组中样本的平均值轻松计算剩余时间.. Easy Peasy:p

于 2013-07-03T11:34:15.140 回答