Используйте UIDevice
свойство batteryState
:
[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
Из UIDevice Docs :
typedef enum {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged,
UIDeviceBatteryStateCharging,
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
Что касается второго вопроса.Я не верю, что вы можете определить какую-либо разницу между аккумулятором и настенным зарядным устройством, поскольку вышеуказанные флаги UIDeviceBatteryState
являются единственными «состояниями», о которых может сообщать аккумулятор устройства.Таким образом, и батарейный блок, и настенное зарядное устройство будут выглядеть как UIDeviceBatteryStateCharging
или UIDeviceBatteryStateFull
(или UIDeviceBatteryStateUnplugged
, если батарейный блок подключен, но не в стоке).