una litio inconsistentes descarga cumple cuando ciclos ciclo carga baterias bateria iphone ios ipad cocoa-touch

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 }