2015-05-21 8 views
5

Zawsze [myDevice batteryLevel] powracający -1 i [myDevice batterystate] powracający 0 (wprowadzanie do domyślnego przypadku).Jak uzyskać prawidłowy poziom naładowania baterii i stan baterii - ios?

W jaki sposób mogę uzyskać prawidłowe wartości?. Czy ktoś może mi pomóc rozwiązać ten problem? .Blukop jest moim kodem. (Zawsze drukuj stan baterii jako "-100%" i stan baterii jako "nieznany").

Kod:

UIDevice *myDevice = [UIDevice currentDevice]; 
[myDevice setBatteryMonitoringEnabled:YES]; 
float batLeft = [myDevice batteryLevel]*100; 
int status=[myDevice batteryState]; 
NSLog(@"level:%0.0f",batLeft); 
NSString *status_str; 
switch (status) 
{ 
    case UIDeviceBatteryStateUnplugged: 
    { 
     NSLog(@"UnpluggedKey"); 
     [email protected]"UnPlugged"; 
     break; 
    } 
    case UIDeviceBatteryStateCharging: 
    { 
     NSLog(@"ChargingKey"); 
     [email protected]"Charging"; 
     break; 
    } 
    case UIDeviceBatteryStateFull: 
    { 
     NSLog(@"FullKey"); 
     [email protected]"BatteryFul"; 
     break; 
    } 

default: 
{ 
    NSLog(@"UnknownKey"); 
    [email protected]"Unknown"; 
    break; 
} 
} 
NSLog(@"Battery status:%@",status_str); 
+4

Czy testowanie na urządzeniu lub na symulatorze? Testowanie na symulatorze da ci wynik, który teraz dostajesz. :-) –

Odpowiedz

8

Kod wydaje się być w porządku, to ten sam, który kiedyś w jednym z mojej aplikacji:

-(void) battery 
{ 
    UIDevice *myDevice = [UIDevice currentDevice]; 
    [myDevice setBatteryMonitoringEnabled:YES]; 

    int state = [myDevice batteryState]; 
    NSLog(@"battery status: %d",state); // 0 unknown, 1 unplegged, 2 charging, 3 full 

    double batLeft = (float)[myDevice batteryLevel] * 100; 
    NSLog(@"battery left: %ld", batLeft); 
} 

Twój problem może być, aby spróbować tego w symulator, gdzie nie może być pracy.

Spróbuj na jednym prawdziwym urządzeniu.

+0

Czym ten kod różni się od tego, który już jest w pytaniu? Wyjaśnij, jak to rozwiązuje problem. – rmaddy

+0

masz rację, zamierzam edytować teraz mój wpis –