Как получить статус батареи на iPhone?
Как получить статус батареи?
Ответ 1
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batLeft = [myDevice batteryLevel];
int i=[myDevice batteryState];
int batinfo=(batLeft*100);
NSLog(@"Battry Level is :%d and Battery Status is :%d",batinfo,i);
switch (i)
{
case UIDeviceBatteryStateUnplugged:
{
[BCStatus setText:NSLocalizedString(@"UnpluggedKey", @"")];
break;
}
case UIDeviceBatteryStateCharging:
{
[BCStatus setText:NSLocalizedString(@"ChargingKey", @"")];
break;
}
case UIDeviceBatteryStateFull:
{
[BCStatus setText:NSLocalizedString(@"FullKey", @"")];
break;
}
default:
{
[BCStatus setText:NSLocalizedString(@"UnknownKey", @"")];
break;
}
}
BCStatus - это uilabel.
Ответ 2
Iphone SDK 3.0 beta поддерживает это.
Ответ 3
Ответы выше, очень хорошие, но все они в Obj-C, я использовал их с другими примерами для выполнения той же задачи на MonoTouch
, поэтому я помещаю свой код здесь, если кому-то это понадобится:
try
{
UIDevice.CurrentDevice.BatteryMonitoringEnabled = true;
_Battery.Level = (int)(UIDevice.CurrentDevice.BatteryLevel * IOSBatteryLevelScalingFactor);
_Battery.State = UIDevice.CurrentDevice.BatteryState;
}
catch (Exception e)
{
ExceptionHandler.HandleException(e, "BatteryState.Update");
throw new BatteryUpdateException();
}
finally
{
UIDevice.CurrentDevice.BatteryMonitoringEnabled = false;
}
У меня также есть полная запись в моем блоге, чтобы предоставить все подробности в здесь
Ответ 4
Вот что я использовал для своей строки в качестве метода быстрой утилиты, обратите внимание, что вам нужно включить мониторинг батареи, чтобы получить значение, а затем, если вы не хотите получать уведомления (очевидно, так как они дают вам возможность отключить его), тогда вы должны отключить его снова (как и в этой функции):
NSString *statusString(void)
{
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:@"Battery Level - %d%%, Battery State - %@",
(int)round(device.batteryLevel * 100), batteryStateString];
[device setBatteryMonitoringEnabled:NO];
return statusString;
}
Ответ 5
Теперь, когда выпущен 3.1 SDK, найдите раздел "Получение состояния батареи устройства" в документации UIDevice. Это свойство батареи *.