计算iOS中的电池寿命

时间:2009-09-24 02:53:33

标签: ios objective-c battery

想知道是否有超出Apple技术统计数据的参考来计算电池寿命。我已经尝试比较一些现有的电池应用程序(电池剩余电量%* Apple的数字),有时我也没有提出相同的答案。还有使用2G电池(而不是3G)的统计数据,我在Apple上看不到2G电池续航时间。

当然,有些应用声称它们“最准确”......但除非有人拥有非常准确的统计数据,否则我不会发现这种情况。

1 个答案:

答案 0 :(得分:17)

API允许您注册以接收有关电池电量更改的通知。它仅报告向上或向下增加5%的变化,但您可以使用计时器并测量两次更改(或初始电池电量和第一次更改)之间的时间。以下是注册通知的方式:

// Use this call to get the current battery level as a float
// [[UIDevice currentDevice] batteryLevel]

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(batteryStateDidChange:)
                                             name:UIDeviceBatteryStateDidChangeNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(batteryLevelDidChange:)
                                             name:UIDeviceBatteryLevelDidChangeNotification
                                           object:nil];

第一个通知告诉您当前状态,例如拔掉,充电或充满电。只要达到5%的增量,第二个就会被触发。

在我看来,如果您给出的是5%更改或更低的更改通知,那么准确性不是您可以很好地计算或快速计算的。如果设备没有做任何事情,5%的变化可能需要很长时间。

也许您可以使用计时器监视[[UIDevice currentDevice] batteryLevel],但是,虽然我没有尝试过,但我认为它只会以相同的5%增量进行更新。