Работают ли уведомления о подключении / отключении экрана с iOS 5? - PullRequest
3 голосов
/ 27 октября 2011

Кто-нибудь все еще получает с iOS 5 уведомления о подключении / отключении экрана, независимо от того, проверяете ли вы зеркалирование или нет?Кажется, я не получаю никаких уведомлений, если я не подключаю к устройству кабель видеовыхода вместо использования AirPlay.

В моем приложении есть кнопка AirPlay, предоставляемая MPVolumeView.Я могу коснуться его и выбрать Apple TV.Кнопка AirPlay становится синей.Я не получаю уведомления.

Я могу перейти к экрану «Сейчас исполняется» (двойной щелчок и страница на одном конце) и выбрать Apple TV.Я получаю подтверждение, когда значок AirPlay становится синим.Мое приложение не получает подтверждения (даже после возврата к нему).

Я могу перейти к экрану «Сейчас исполняется» (двойной щелчок и страница до конца), выбрать Apple TV И выбрать зеркальное отображение.Я получаю подтверждение, когда значок AirPlay становится синим.Мое приложение не получает подтверждения (даже после возврата к нему).

Я закрываю свое приложение и оставляю зеркальное отображение включенным.Я перезапускаю свое приложение.У меня есть код, который проверяет количество экранов.Я вижу только одну.

Я надеюсь, что делаю что-то не так, но я хочу проверить и убедиться, что другие получают уведомления при использовании AirPlay.Я вспоминаю, что проверял свою совместимость с AirPlay во время бета-версий 5.0 и не имел таких проблем.

(пример Apple ExternalDisplay ведет себя так же.)

Код, который я использую для регистрации уведомлений:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(screenDidConnect:)
                                             name:UIScreenDidConnectNotification
                                         object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(screenDidConnect:)
                                             name:UIScreenDidDisconnectNotification 
                                           object:nil];

Код, который должны вызывать уведомления:

- (void) screenDidConnect:(NSNotification *)notification {
    if ([[UIScreen screens] count] > 1) 
        [self myScreenInit:[notification object]];
    else {
         ...
    }

1 Ответ

4 голосов
/ 29 октября 2011

Оказывается, что с iOS 5.0 вы получаете только уведомление, в следующих случаях:

  • iPad 2 или iPhone 4s и
  • Вы должны включить зеркалирование на экране «Сейчас исполняется» устройства (дважды нажмите кнопку «Домой», перейдите на крайнюю левую страницу, коснитесь значка AirPlay, выберите AppleTV и включите зеркалирование). Это кажется странным, но так оно и работает. Просто выбрав AirPlay AppleTV без зеркалирования, вы сможете использовать AppleTV для контента, который отображается в рамках AVPlayer.

С помощью кабеля HDMI большее количество устройств может использовать второй экран с помощью UIScreen.

...