iOS - проблема с отображением состояния батареи

Я пытаюсь отобразить процент заряда батареи с помощью UILabel, но результат - чепуха! вот мой код:

UIDevice *myDevice = [UIDevice currentDevice];
    [myDevice setBatteryMonitoringEnabled:YES];
    int i=[myDevice batteryState];
    _battery.text = [NSString stringWithFormat:@"%i",i];

На этикетке показано число 2!!!!

3 ответа

Решение

Используйте код ниже, чтобы получить уровень заряда батареи

UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batteryLevel = [myDevice batteryLevel];
_battery.text = [NSString stringWithFormat:@"%f",batteryLevel*100];

[myDevice batteryLevel]; даст вам батарею от 0,0 (разряжена) до 1,0 (заряжена на 100%)

Надеюсь, поможет..

iPhone OS предоставляет два типа событий мониторинга батареи: одно для изменения состояния (например, зарядка, отключение от сети, полная зарядка) и одно для обновления при изменении уровня заряда батареи. Как и в случае с мониторингом близости, вы регистрируете обратные вызовы для получения уведомлений:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device];

Также обратитесь по этой ссылке.

[myDevice batteryState];//return is a variable of UIDeviceBatteryState

на этикетке номер 2 означает "UIDeviceBatteryStateCharging, // подключен, менее 100%", если вы хотите отобразить процент заряда батареи. Код в первом ответе поможет вам.

Другие вопросы по тегам