Конкретный ответ на ваш вопрос:
Тот факт, что часы больше не подключены, не очевиден, так как можно использовать все способы передачи, включая немедленный обмен сообщениями. Переводы просто откладываются до тех пор, пока пользователь не переключится обратно на эти часы.
Поскольку неподключенные часы все еще могут инициировать передачу на сопряженный с ними iPhone, вам, вероятно, придется реализовать какое-то рукопожатие или обнаружение тайм-аута и посмотреть, не ответит ли телефон вовремя.
Мои выводы:
Кажется, что неподключенные часы не должны знать, что пользователь переключился на другие часы. Как вы указали, сеанс приложения для часов все еще активен, и часы (симулятор) по-прежнему сообщают, что телефон доступен.
Неподключенное приложение для часов может продолжать использовать все способы передачи, включая интерактивный обмен сообщениями (хотя исходящие данные ставятся в очередь системой и не передаются пока пользователь не переключится обратно на эти часы).
Я проверил, что данные помещаются в очередь, используя два разных подхода:
- используя словарь
transferUserInfo
из часов, запуская цикл выполнения, повторяя этот процесс несколько раз, а затем просматривая массив outstandingUserInfoTransfers
.
- используя обработчик ответа
sendMessage
, который запускается только после того, как пользователь переключится обратно на эти часы и получит ответ.
После обратного переключения все переводы в очереди немедленно отправляются на его телефон, а любые интерактивные ответы затем принимаются часами.
Хотя неподключенные часы могут ставить в очередь данные на связанный с ним iPhone (поскольку их сеанс все еще активен), телефон может обмениваться данными только со своими подключенными часами, поскольку у телефона больше нет активного сеанса с любыми неподключенными часами.< /эм>
Новый пример кода:
Вы можете попробовать новый пример кода QuickSwitch. Он использует updateApplicationContext
для передачи обозначения и цвета с любых часов на телефон.
Вы можете изменить обозначение и цвет неиспользуемых часов, использовать панель «Устройства Xcode», чтобы переключиться на эти часы, а затем заметить, что приложение iOS немедленно показывает новое обозначение и цвет этих часов (которые были поставлены в очередь, пока часы не использовались).
Возможное reachable
несоответствие документации:
В вашем расширении WatchKit значение этого свойства равно YES, когда соответствующий сеанс активен на iPhone пользователя и устройство находится в пределах досягаемости, так что связь может быть установлена.
Поскольку у меня нет вторых часов, я не мог проверить, меняется ли доступность неиспользуемых часов на false, когда их телефон выходит из зоны действия.
person
Community
schedule
29.03.2016