2

バッテリーの充電レベルを正しく返すが、バッテリーの状態を取得しない以下のメソッドがあります。常に 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 から正しいバッテリー状態を返すにはどうすればよいですか?

4

1 に答える 1

9

スイッチの前にこの行を移動してみてください。

[device setBatteryMonitoringEnabled:YES];

デフォルトでバッテリー監視が無効になっていると、バッテリーの状態を正しく読み取ることができなくなります。

于 2013-06-26T19:45:46.007 に答える