计算iOS中的电池寿命

kin*_*ran 2 battery objective-c ios

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

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

Mat*_*ong 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];
Run Code Online (Sandbox Code Playgroud)

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

在我看来,如果你给出的只是5%变化的变化通知,那么精确度不是你可以很好或很快计算出来的.如果设备没有做任何事情,5%的更改可能需要很长时间.

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