Как программно разбудить iphone на applewatch

Мой сценарий — управление музыкальным проигрывателем iphone на applewatch. Так же, как то, что сделал бы музыкальный взгляд Applewatch. Проект будет приложением для iphone, приложением для часов и расширением для часов. однако я хочу, чтобы он мог работать, даже если мое приложение для iphone не активно. Я знаю, когда приложение для iphone активно, я могу использовать wcsession и sendMessage для управления музыкой на iphone. Однако, когда приложение iphone не активно. Я не знаю, что я должен сделать, чтобы получить работу.

Еще одна вещь, я не понимаю, как работает приложение для iphone, когда оно не активно. Должен ли он сначала быть активным, чтобы выполнять эту работу, или он никогда не бывает бездействующим, поэтому он все еще может работать?


person Jieyi Hu    schedule 25.06.2015    source источник


Ответы (2)


Используйте это, чтобы разбудить приложение iPhone из приложения Watch Kit в фоновом режиме:

из https://developer.apple.com/library/prerelease/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/UpdatetheAppCode.html

Интерактивный режим обмена сообщениями

sendMessage:replyHandler:errorHandler:

sendMessageData:replyHandler:errorHandler:

Используйте этот режим для немедленной отправки данных в приложение-аналог. Если вам не нужен ответ, вы можете указать nil для параметра replyHandler. Приложение-аналог должно быть доступно до вызова этого метода. Приложение iOS всегда считается доступным, и вызов этого метода из вашего приложения Watch пробуждает приложение iOS в фоновом режиме по мере необходимости. Приложение Watch считается доступным только тогда, когда оно установлено и работает. Данные передаются немедленно, а сообщения ставятся в очередь и доставляются в том порядке, в котором они были отправлены.

person Gerd Castan    schedule 28.06.2015
comment
Есть ли решение для watchOS 3? - person Dmitry; 13.11.2016

Все, что вам нужно сделать, это настроить приложение так, чтобы оно реагировало на события удаленного управления.

События удаленного управления События удаленного управления — это любые события, полученные с целью управления мультимедиа. например кнопки паузы/воспроизведения/следующего/предыдущего в iTunes, доступные в центре управления, или удаленное управление событиями с помощью кнопок воспроизведения/паузы на наушниках.

Вот учебник по этому вопросу.

Тогда ваш взгляд на часы сможет управлять звуком приложений.

С текущим API для Watch OS2 и iOS9 перезапись взгляда, похожего на тот, который сейчас воспроизводится, невозможна.

person Woodstock    schedule 25.06.2015
comment
может вы меня немного не так поняли. Я не имел в виду, что мне нужно приложение для iOS, которым можно было бы управлять с помощью просмотра музыки. я хочу, чтобы приложение watch os 2 могло управлять музыкой iphone, даже если его родительское приложение ios находится в фоновом режиме - person Jieyi Hu; 25.06.2015
comment
как насчет это не взгляд. Что, если он находится в интерфейсном контроллере. Могло ли это случиться? - person Jieyi Hu; 25.06.2015
comment
К сожалению, нет, вы не можете изменить системный экземпляр MPMusicPlayerController. - person Woodstock; 25.06.2015
comment
Я понимаю, что watchkit не может этого сделать. Но iOS могла управлять музыкой даже в фоновом режиме, как в этом уроке. Итак, как насчет того, чтобы я использовал watchkit, чтобы попросить приложение для iOS сделать это за меня? Вот почему я упоминаю WCSession. Однако я думаю, что WCSession работает только на переднем плане. - person Jieyi Hu; 25.06.2015
comment
Интересно, читая документы, кажется, что это возможно с помощью фоновых вызовов обмена сообщениями... developer.apple.com/library/prerelease/watchos/documentation/ - person Woodstock; 25.06.2015
comment
Ты прав. Я интенсивно работаю с этой WCSession. Однако я заметил, что вы можете отправить сообщение только тогда, когда активны и приложение для часов, и приложение для iOS, или вы можете передавать данные из одного в другое для последующего использования, когда пользователь вручную активирует приложение. Однако вы не можете программно разбудить встречную часть для выполнения работы. Поэтому, если мое приложение для iOS находится в фоновом режиме, мое приложение для часов больше не сможет управлять музыкой. - person Jieyi Hu; 25.06.2015
comment
Давайте продолжим это обсуждение в чате. - person Jieyi Hu; 25.06.2015
comment
Просто для ясности: приложение watchOS может разбудить аналог iOS, но приложение iOS не может сделать это с помощью своего приложения для часов. - person BootMaker; 07.02.2016