Работают ли уведомления о подключении / отключении экрана с iOS 5?
Кто-нибудь все еще получает с 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 ответ
Оказывается, что с iOS 5.0 вы получаете уведомление только в следующих случаях:
- iPad 2 или iPhone 4s и
- Вы должны включить зеркалирование на экране "Сейчас исполняется" устройства (дважды нажмите кнопку "Домой", перейдите на крайнюю левую страницу, коснитесь значка AirPlay, выберите AppleTV и включите зеркалирование). Это кажется странным, но так оно и работает. Просто выбрав AirPlay AppleTV без зеркалирования, вы можете использовать AppleTV для контента, который отображается в рамках AVPlayer.
С помощью кабеля HDMI больше устройств могут использовать второй экран с помощью UIScreen.