2013-06-26 5 views
1

배터리 충전 수준을 올바르게 반환하지만 배터리 상태를 얻지 못하는 아래 방법이 있습니다. 항상 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에서 올바른 배터리 상태를 반환 할 수 있습니까?

+1

http://stackoverflow.com/a/16850740/1710611 – rog

답변

8

전환하기 전에이 줄을 이동하십시오.

기본적으로 배터리 모니터링을 사용하지 않으면 배터리 상태를 올바르게 읽을 수 없습니다.

+0

작동합니다! 나는 너무 오랫동안 그것을 꼼짝 않고 바라 보았다. 고맙습니다. – motionpotion