电池状态总是无效

mot*_*ion 2 uidevice ios batterylevel

我有下面的方法正确返回电池充电水平但没有得到电池状态.它总是返回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;
}
Run Code Online (Sandbox Code Playgroud)

如何从UIDevice返回正确的电池状态?

Ale*_*der 9

尝试在切换之前移动此行.

[device setBatteryMonitoringEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

默认禁用电池监控会阻止您正确读取电池状态.