
本文介绍电池监视。
像接近监测一样,通过设定UIDevice单例的属性为YES启用电池监视。
1 2 | UIDevice *device = [UIDevice currentDevice]; device.batteryMonitoringEnabled = YES; |
iPhone OS提供了两种电池监测事件,一种是在state(状态)改变时发生 (例如,充电,拔出,充电完成) ,另一种是当电池充电电位改变时更新。像接近监测一样,你想要注册接收notification(通知)的回调:
1 2 3 4 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device]; |
电池电位通知每隔5%被触发一次。
为了测试,我创建了一个一次性的程序(源码: github, zip),它在通知发生时将电池状态及充电电位写入一个Table View和控制台。
我拔出电话电源,运行此程序等待电池电位改变通知。iPhone仅在电池电量为95%,然后是90%等时触发通知。
当我插入电源重新进行充电时,电池电位变化通知也是以5%为间隔进行触发的。



