The AppleWatchDeviceManager exposes information about state of the watch and the phone.
Is the watch ready?
isAvailable is true when WatchConnectivity is supported, a watch is paired,
and the companion watch app is installed on it.
isReachable is not part of that check, and should not be. Reachability only matters
for live messaging. Data files are queued by the operating system and delivered when the
watch comes back into range, so collection works perfectly while the watch is
unreachable - in the shower, on a run without the phone, overnight.
AppleWatchStatus
isCollectingData is based on the last status message the watch app sent, so it is only
meaningful after the watch app has run at least once. A recently installed watch app that
has never been opened reports false.
Reading the state
Connection lifecycle
AppleWatchDeviceManager follows the normal CAMS device status model, with a couple of
specifics worth knowing:
Battery level of the watch
Transfer progress
AppleWatchFileTransfer carries table, fileName, chunkIndex, totalChunks,
state, and an error message when something failed.
watchInfo is populated once the watch has sent a device record. The same information is
carried into the CAMS AppleWatchDeviceRegistration (watchDeviceId, model,
systemVersion, and isWatchAppInstalled), so it is stored with the deployment and is
available when analysing the data later.