О внешних аксессуарах

Внешнее Вспомогательное платформа (ExternalAccessory.framework) обеспечивает кабелепровод для связи с аксессуарами, присоединенными к любому основанному на iOS устройству. Разработчики приложений могут использовать этот кабелепровод для интеграции функций вспомогательного уровня в их приложения.

Связь с внешним аксессуаром требует, чтобы Вы работали в тесном сотрудничестве со вспомогательным производитель для понимания услуг, предоставленных тем аксессуаром. Производители должны встроить явную поддержку в их вспомогательный аппаратные средства для связи с iOS. Как часть этой поддержки, аксессуар должен поддерживать по крайней мере один командный протокол, который является пользовательской схемой отправки данных назад и вперед между аксессуаром и присоединенным приложением. Apple не поддерживает реестр протоколов; именно до производителя для решения протоколов для поддержки и использовать ли пользовательские протоколы или стандартные протоколы, поддерживаемые другими производителями.

Как часть Вашей связи со вспомогательным производитель, необходимо узнать что протоколы оказанное вспомогательное поддержка. Для предотвращения конфликтов пространства имен имена протокола указаны как строки обратного DNS формы com.apple.myProtocol. Это позволяет каждому производителю определять как много протоколов по мере необходимости для поддержки их строки аксессуаров.

Сразу

Связь с аксессуарами запрашивает информацию о самом аксессуаре, который необходимо получить из производителя оборудования. Оттуда, Вы используете классы Внешнего Вспомогательного платформа для создания моста между аппаратными средствами и приложением.

Включая внешнее вспомогательное платформа в Вашем проекте

Для использования функций Внешнего Вспомогательного платформа необходимо добавить ExternalAccessory.framework к Вашему проекту XCode и ссылке против него в любых соответствующих целях. Для доступа к классам и заголовкам платформы включайте #import <ExternalAccessory/ExternalAccessory.h> оператор наверху любых файлов соответствующего источника.

Объявление протоколов поддержки приложений

Приложения, которые в состоянии связаться с внешним аксессуаром, должны объявить протоколы, которые они поддерживают в их Info.plist файл. Объявление поддержки определенных протоколов позволяет системе знать, что Ваше приложение может быть запущено, когда соединяется тот аксессуар. Если никакие поддержки приложений связанный аксессуар, система может принять решение запустить App Store и указать делающие на приложения.

Для объявления протоколов поддержки приложений необходимо включать UISupportedExternalAccessoryProtocols введите свое приложение Info.plist файл. Этот ключ содержит массив строк, идентифицирующих коммуникационные протоколы что Ваши поддержки приложений. Ваше приложение может включать любое число протоколов в этом списке, и протоколы могут быть в любом порядке. Система не использует этот список для определения, которые протоколируют приложение, должен выбрать; это использует его только, чтобы определить, способно ли Ваше приложение к связи с аксессуаром. Это до Вашего кода для выбора надлежащего коммуникационного протокола, когда это начинает говорить с аксессуаром.

Для получения дополнительной информации о ключах Вы помещаете в свое приложение Info.plist файл, посмотрите информационную Ключевую Ссылку Списка свойств.

Связь с аксессуаром

Приложение связывается с аксессуаром путем создания EASession объект для управления вспомогательным взаимодействия. Сеанс возражает работе с базовой системой для передачи пакетов данных и от аксессуара. Передача данных в Вашем приложении происходит через NSInputStream и NSOutputStream объекты, продающиеся объектом сеанса один раз соединение, сделаны. Для получения данных из аксессуара контролируйте входной поток с помощью пользовательского объекта делегата. Для отправки данных в аксессуар запишите пакеты данных в поток вывода. Формат поступления и исходящих пакетов данных определяется протоколом, который Вы используете для передачи с аксессуаром.

См. также

Для получения информации о классах Внешнего Вспомогательного платформа посмотрите Внешний Вспомогательный Ссылка Платформы