如何在ios中获得1%准确度的电池电量

如何获得1%准确度的电池电量。

[UIDevice currentDevice].batteryLevel 

将提供5%的准确度的电池水平。 但是我最近在运行ios 5.1的iphone 4S上使用了Battery Doctor App,这个版本的电池电量准确度只有1%。 任何人有任何想法,我们怎么能得到这个准确性…我已经尝试和搜查了很多,但没有得到他们如何计算..预先感谢…

从iOS 8开始,

 [UIDevice currentDevice].batteryLevel 

提供1%的准确性:)

如果您closures设置 – >常规 – >使用 – >电池百分比,电池医生显示您的电池电量水平%5精度…所以我想他们正在运行一些图像识别algorithm的设备的右上angular,显示电池的百分比。

如果你越狱,你可以简单地使用

 int percent = [(SBUIController*)[objc_getClass("SBUIController") sharedInstance] displayBatteryCapacityAsPercentage]; 

这种方法在iOS 4.3+上出现,可能是Battery Doctor正在使用的。

答案来自这个问题 :

您可以使用NSTimer来操作显示的值,从而显示准确性。 对于每个会话,应用程序处于活动状态,制作一组电池数据(例如电池电量从100%下降到95%,然后从95%下降到90%等等),并将其保存到设备本身。 然后,使用计时器根据电池电量降低5%所需的时间除以5(假设每个百分比在相同的时间间隔之后下降,这将会变化,但不会变化)来更新(和估计)电池值是一个明显的偏差)。 确实,电池寿命随时间下降,但是由于我们根据上一次保存的值调整了定时器的值,因此在设备的使用寿命中应该保持非常准确。

编辑 –对于初始状态,您可以根据iPhone型号(3,3G,4,4S)提供默认值。 可以为这些不同的设备计算不同的值。

在iOS 8.1.x中,我注意到电池级别现在正在报告应用程序的确切电池电量。 以前, UIDevice会每5%报告一次。 在iOS 8.1.x中没有什么可做的,因为[UIDevice currentDevice].batteryLevel现在应该自动报告这个。