iphone - litio - cuando se cumple un ciclo de bateria
tiempo restante hasta que se complete la carga, iOS (1)
Estoy usando :
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batLeft = [myDevice batteryLevel];
int i = [myDevice batteryState];
int batinfo = batLeft * 100;
para encontrar el estado de la batería. Estoy mirando hacia fuera para encontrar, cómo encontrar el tiempo restante hasta que se complete la carga. Ej: 1 hora 20 min restantes. ¿Cómo puedo encontrarlo programáticamente?
No he encontrado ningún método para esto en la documentación oficial , ni en el encabezado privado UIDevice
clase de la clase UIDevice
.
Así que tenemos que llegar a algo. La mejor "solución" que tengo en mente en este momento es similar al enfoque adoptado al estimar el tiempo de descarga: calcular una velocidad promedio de descarga / carga y dividir la cantidad restante (de datos o carga) por esa velocidad:
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
float prevBatteryLev = [UIDevice currentDevice].batteryLevel;
NSDate *startDate = [NSDate date];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(batteryCharged)
name:UIDeviceBatteryLevelDidChangeNotification
object:nil
];
- (void)batteryCharged
{
float currBatteryLev = [UIDevice currentDevice].batteryLevel;
// calculate speed of chargement
float avgChgSpeed = (prevBatteryLev - currBatteryLev) / [startDate timeIntervalSinceNow];
// get how much the battery needs to be charged yet
float remBatteryLev = 1.0 - currBatteryLev;
// divide the two to obtain the remaining charge time
NSTimeInterval remSeconds = remBatteryLev / avgChgSpeed;
// convert/format `remSeconds'' as appropriate
}