We have an existing iOS app (developed for a client) that uses Core Location to report location updates to their servers (so they can keep track of their executives). When the app determines that the phone has remained in the same location for several minutes, it stops the location updates to conserve battery life and then uses region monitoring to determine when the phone has left that location (at which point, location updates are started again).
This client recently started issuing Apple Watches to their executives and they’ve asked if we could implement similar functionality in a watchOS app. Based on my initial research into watchOS, it seems that a lot of the mechanisms available in iOS that allow us to do this sort of thing are not supported in watchOS. Region monitoring isn't. Neither are significant-change location updates or visit monitoring. The location manager instance property pausesLocationUpdatesAutomatically doesn’t exist on watchOS, either. I thought we might be able to use the Core Motion activity manager to detect when the device is no longer stationary but it looks like updates from Core Motion aren’t delivered to the app while its suspended.
So the only other possibility that I can think of would be to use HealthKit to start a workout to track if the user is moving. But I’m not sure that would address the situation where the user gets into a vehicle, for example. We'd really like to avoid having to have location updates turned on all the time because of the impact on battery life. Is there another mechanism that I’m not aware of in watchOS that could be leveraged to detect when the watch has transitioned from being stationary to moving again while 1) the app is suspended and 2) doesn’t rely on location updates to be turned on all the time?