如何知道设备何时充电?

use*_*705 11 iphone objective-c ios

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

iDe*_*Dev 24

这个怎么样.

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

苹果文档中,

UIDeviceBatteryState: 设备的电池电量状态.

typedef enum {
   UIDeviceBatteryStateUnknown,
   UIDeviceBatteryStateUnplugged,
   UIDeviceBatteryStateCharging,
   UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
Run Code Online (Sandbox Code Playgroud)

UIDeviceBatteryStateUnknown: 无法确定设备的电池状态.

UIDeviceBatteryStateUnplugged: 设备未插入电源; 电池正在失去动力.

UIDeviceBatteryStateCharging: 设备已接通电源,电池电量低于100%.

UIDeviceBatteryStateFull: 设备已接通电源,电池100%充电.


更新:

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

batteryMonitoringEnabled:布尔值,指示电池监视是否启用(YES)与否(NO).

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

此属性的默认值为NO:

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

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

  • 您可能希望将该条件更新为"if(deviceBatteryState == UIDeviceBatteryStateCharging || deviceBatteryState == UIDeviceBatteryStateFull)",因为这两种状态都意味着设备已插入电源. (3认同)