Specific meaning on iOS of: WCSession activationState == activated

What specifically does it mean when the WCSession activationState == activated?

I had originally thought it meant the iOS app would be able to communicate with the paired watch, but I'm seeing the activationState set to activated even when the paired watch is powered off or otherwise inaccessible.

If it means iOS can reach some paired watch, but if it says nothing about whether it can do it right now, how can I tell if in fact the watch - not the companion app, the watch itself - is accessible?
  • I am also struggling with the same issue. In the docs I read, that I need to wait until session(session:activationDidCompleteWith:error) returns with a "activated" state before I can sendMessage() on the session. But when I wait until that happens and only then call sendMessage, I still receive an error: ["WCSession sendMessage.error: Error Domain=WCErrorDomain Code=7007 "WatchConnectivity session on paired device is not reachable." UserInfo={NSLocalizedDescription=WatchConnectivity session on paired device is not reachable.}"]

    I am at a loss and I already implemented something ugly like delaying the sendMessage() for a second after calling session.activate().

    There must be some way to tell, when it is safe to sendMessage(). Waiting for the callback 'activationDidCompleteWith' doesn't seem to be one of them :-(

Add a Comment

Replies

This sounds like a bug. Could you please file a Feedback for me to share internally?