I'm running an app that samples accelerometer and gyroscope data overnight. This is a very battery intensive operation, and I would like to teach my app to recognize when the battery is getting low.
Here's my prototype code, which checks the battery level every 10 minutes
NSDate* date = [NSDate date];
if((int)([date timeIntervalSinceReferenceDate])%600 == 0)
{
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batLeft = [myDevice batteryLevel];
int batinfo=(batLeft*100);
[self postStatusMessageWithTitle:nil
description:[NSString stringWithFormat:@"%@ battery level: %i",[dateFormat stringFromDate:dateShow],batinfo]];
[myDevice setBatteryMonitoringEnabled:NO];
}
My question is this: do I need to add this line to the end of the code:
[myDevice setBatteryMonitoringEnabled:NO];
It appears that the battery check is performed right there, there are no asynchronous delegate calls. Will setting the value to NO produce any battery savings from not having to monitor the battery level overnight? Will I break anything by setting it to NO?
Thank you for any input!