如何知道设备何时充电?

时间:2012-11-01 22:02:46

标签: iphone ios objective-c

如何在设备充电时检测我的iOS应用程序?

1 个答案:

答案 0 :(得分:24)

这个怎么样。

UIDeviceBatteryState deviceBatteryState = [UIDevice currentDevice].batteryState;
if (deviceBatteryState == UIDeviceBatteryStateCharging || deviceBatteryState == UIDeviceBatteryStateFull) {
    // It is charging
}

来自apple documentation

<强> UIDeviceBatteryState: 设备的电池电量状态。

typedef enum {
   UIDeviceBatteryStateUnknown,
   UIDeviceBatteryStateUnplugged,
   UIDeviceBatteryStateCharging,
   UIDeviceBatteryStateFull,
} UIDeviceBatteryState;

<强> UIDeviceBatteryStateUnknown: 无法确定设备的电池状态。

<强> UIDeviceBatteryStateUnplugged: 设备未插入电源;电池正在失去动力。

<强> UIDeviceBatteryStateCharging: 设备已接通电源,电池电量低于100%。

<强> UIDeviceBatteryStateFull: 设备已接通电源,电池100%充电。


<强>更新

完全回答你的问题。以下是检测充电器何时插入的方法。有一个名为batteryMonitoringEnabled的属性。

batteryMonitoringEnabled:一个布尔值,指示电池监控是否已启用(YES) (NO)

如果您的应用需要通知电池状态变化,或者您想检查电池电量水平,请启用电池监控。

此属性的默认值为NO,其中:

  
      
  • 禁用与电池相关的通知的发布
  •   
  • 禁用读取电池电量和电池状态的功能
  •   

这将在电池电量发生变化时发布通知UIDeviceBatteryLevelDidChangeNotificationUIDeviceBatteryStateDidChangeNotification。您可以使用UIDeviceBatteryStateDidChangeNotification来检测充电器何时插入。