Я работаю над игрой в Objective-C. Пульт Siri отлично работает через GCMicroGamepad, а настоящие контроллеры MFi хорошо работают через GCGamepad. Однако сторонние ИК-пульты вообще не работают в игре (как и приложение Remote на iPhone или более старый пульт Apple TV 3-го поколения).
Как я могу распознать и отличить эти входные данные?
Два дня спустя ... Я обнаружил, что UITapGestureRecognizer можно использовать для правильного обнаружения событий Up, Down, Left, Right и Select при использовании стороннего пульта дистанционного управления телевизором или iPhone Remote.app. Направленные события также уникальны для этих типов пультов — пульт Siri не генерирует направленные события касания. Однако, к сожалению, нажатие кнопки «Выбрать» на пульте Siri, стороннем приложении или приложении iPhone Remote.app сгенерирует событие «Выбрать» из моего распознавателя касаний. Мне нужен какой-то способ различить их.
Единственный отличительный фактор, который я могу найти, заключается в том, что нажатие на пульт Siri также генерирует нажатие кнопки A на GCMicroGamepad — сторонний пульт или iPhone Remote.app вообще не влияет на GCMicroGamepad. Но крайне неэлегантно пытаться отслеживать GCMicroGamepad для событий касания, а затем использовать это событие для фильтрации соответствующего события кнопки «Выбрать». Конечно, это не рекомендуемое использование API; это не похоже на хорошее долгосрочное решение. Если бы я мог сказать пульту Siri прекратить генерировать события пользовательского интерфейса в режиме GCMicroGamepad, это было бы превосходно.