2014-05-14 57 views
5

我做的,我计算出的电池如何访问电池的剩余时间在android系统

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

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

因此,任何建议,请问有什么可以计算这个?

+0

我想在这里你可以找到更多信息http://stackoverflow.com/questions/17446460/get-how-much-time-i-have-before-the-battery-goes-to-0-android – Robert

+0

possible [估计时间,直到电池耗尽的Android手机编程](http://stackoverflow.com/questions/4330334/estimating-time-until-battery-is-depleted-for-android-phones-programmatically) –

+0

检查出开发指南:http://developer.android.com/training/monitoring-device-state/battery-monitoring.html – DroidBender

回答

2

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

还有就是要计算多长时间留在当前电池电量没有真正的方法,应用程序可以使用在不同的时间不同的功率,这意味着,有可能是在剩余时间计算偏差。

,我可以看到你生成一个有点可靠的时间,唯一的办法是尽可能地品尝电池和保持与被放电的电池量的时间偏移。在足够的样本之后,您将能够更好地估计在x分钟内放电的电池数量。

编辑:要扩大了一点,你可能会得到更新(A),然后又两次更新(B,C)。这些更新可能会在某种类型的集合中存储一段时间,然后您可以使用逻辑来计算从存储的样本中生成的时间之间的平均损失。

该解决方案仍然不能提供完全准确的结果。

+0

但这个我可以在一个手机上不是在每个手机上的样本 –

+0

这是正确的,但你的应用程序可以容纳数据在当前运行时间中,并尽最大努力计算当前用户的平均值。 – JamieB

+0

好吧,我搜索更多的东西,并尝试工作 –