I am making a GPS app and the accuracy changes based on if power is available (ie vehicle charger)
Is there a way to run something in the background that constantly checks to see if a device is receiving power?
I know how to check if power is connected. But the issue is IF the user is at home and connected. He unplugs the device to go out on a run. Then decides to hang out. My app checks the battery state on launch. How can I check it again and again. I don't want to drain his battery because he was using my app!
We plan on only supporting iOS 5 and higher (no need for backward compatibility with iOS 4 and 3)
Thanks
Have a look at the UIDevice
class reference.
There is a property called batteryState
that returns a UIDeviceBatteryState
. So, to see if the device is charging or is plugged in and full.
UIDeviceBatteryState currentState = [[UIDevice currentDevice] batteryState];
if (currentState == UIDeviceBatteryStateCharging || currentState == UIDeviceBatteryStateFull) {
// The battery is either charging, or connected to a charger and is fully charged
}
Edited to add
If you want to continuously monitor the state, take a look at the batteryMonitoringEnabled
property and then handle the UIDeviceBatteryStateDidChangeNotification
to update whatever you want to.
iOS is event driven. Checking the state of something within a while loop is something you very rarely need to do.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With