Android
Battery level checking Android
Battery level checking Android 1
См демо: Battery Demo Android
IOS
Да в устройстве iOS, когда вы заряжаете устройство, вы можете получить информацию о состоянии батареи. Уведомление о вашем batteryLevelChanged
и batteryStateChanged
Смотрите демо: Batterry Demo iOS
Примечание: Run This демо в IOS устройств. Не симулятор.
// Register for battery level and state change notifications.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(batteryLevelChanged:)
name:UIDeviceBatteryLevelDidChangeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(batteryStateChanged:)
name:UIDeviceBatteryStateDidChangeNotification object:nil];
Код для updateBatteryLevel
:
- (void)updateBatteryLevel
{
float batteryLevel = [UIDevice currentDevice].batteryLevel;
if (batteryLevel < 0.0) {
// -1.0 means battery state is UIDeviceBatteryStateUnknown
self.levelLabel.text = NSLocalizedString(@"Unknown", @"");
}
else {
static NSNumberFormatter *numberFormatter = nil;
if (numberFormatter == nil) {
numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:1];
}
NSNumber *levelObj = [NSNumber numberWithFloat:batteryLevel];
self.levelLabel.text = [numberFormatter stringFromNumber:levelObj];
}
}
- (void)updateBatteryState
{
NSArray *batteryStateCells = @[self.unknownCell, self.unpluggedCell, self.chargingCell, self.fullCell];
UIDeviceBatteryState currentState = [UIDevice currentDevice].batteryState;
for (int i = 0; i < [batteryStateCells count]; i++) {
UITableViewCell *cell = (UITableViewCell *) batteryStateCells[i];
if (i + UIDeviceBatteryStateUnknown == currentState) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
}
Привет Кирит, спасибо вам за помощь! Выполняя эти коды, какую информацию я получаю точно? % от уровня заряда батареи? Miliamperes ...? Извините, если мой вопрос кажется немного наивным :) –
self.levelLabel.text вы получаете уже процентное значение в ios, так же, как Android-демо, не принимайте Milometer. –
ОК. Просто чтобы подтвердить: можно получить миллиамперы через Android, но не возможно через IOS? –