iPhone4 как узнать подключен ли кабель питания? - PullRequest
4 голосов
/ 28 октября 2011

Я хотел бы знать, работает ли мое приложение с подключенным внешним кабелем питания.Можно ли узнать это состояние во время выполнения?

Дополнительный вопрос: сможет ли это отличить истинное питание от USB от этих внешних "аккумуляторов"?

Спасибо!

Ответы [ 3 ]

10 голосов
/ 28 октября 2011

Используйте UIDevice свойство batteryState:

[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging

Из UIDevice Docs :

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

Что касается второго вопроса.Я не верю, что вы можете определить какую-либо разницу между аккумулятором и настенным зарядным устройством, поскольку вышеуказанные флаги UIDeviceBatteryState являются единственными «состояниями», о которых может сообщать аккумулятор устройства.Таким образом, и батарейный блок, и настенное зарядное устройство будут выглядеть как UIDeviceBatteryStateCharging или UIDeviceBatteryStateFull (или UIDeviceBatteryStateUnplugged, если батарейный блок подключен, но не в стоке).

1 голос
/ 15 октября 2013

Мне пришлось включить строку,

[[UIDevice currentDevice] setBatteryMonitoringEnabled: YES];

или batteryState возвращает только UIDeviceBatteryStateUnknown. Возможно, это стало необходимым, так как этот вопрос был первоначально задан и получен ответ. Я нашел подсказку здесь: Определить точный уровень заряда батареи iPhone .

1 голос
/ 28 октября 2011

Вы можете определить, заряжается ли батарея, но это настолько близко, насколько это возможно с существующими API - нет способа определить, откуда происходит, так сказать, питание.

...