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
UIDeviceclass reference.There is a property called
batteryStatethat returns aUIDeviceBatteryState. So, to see if the device is charging or is plugged in and full.Edited to add
If you want to continuously monitor the state, take a look at the
batteryMonitoringEnabledproperty and then handle theUIDeviceBatteryStateDidChangeNotificationto 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.