Состояние батареи всегда возвращает ноль

У меня есть метод ниже, который правильно возвращает уровень заряда батареи, но не получает состояние батареи. Он всегда возвращает UNKNOWN.

-(NSString *)batteryStatus
{
UIDevice *device = [UIDevice currentDevice];
NSString *batteryStateString = nil;
switch(device.batteryState)
{
    case UIDeviceBatteryStateUnplugged: batteryStateString = @"Unplugged"; break;
    case UIDeviceBatteryStateCharging: batteryStateString = @"Charging"; break;
    case UIDeviceBatteryStateFull: batteryStateString = @"Full"; break;
    default: batteryStateString = @"Unknown"; break;
}

[device setBatteryMonitoringEnabled:YES];
NSString *statusString = [NSString stringWithFormat:@"Level - %d%% - State - %@",
                          (int)round(device.batteryLevel * 100), batteryStateString];
[device setBatteryMonitoringEnabled:NO];
return statusString;
}

Как я могу вернуть правильное состояние батареи из UIDevice?


person motionpotion    schedule 26.06.2013    source источник
comment
stackoverflow.com/a/16850740/1710611   -  person rog    schedule 27.06.2013


Ответы (1)


Попробуйте переместить эту строку перед переключателем.

[device setBatteryMonitoringEnabled:YES];

Отключенный по умолчанию мониторинг батареи не позволит вам правильно определить состояние батареи.

person Alexander    schedule 26.06.2013