Добрый день по Bluetooth на iOS 5 и Позже
Q: После принятия iOS 5 SDK мое приложение больше не видит службы Bonjour по Bluetooth. Что продолжается здесь?
A: Когда Добрый день по поддержке Bluetooth был добавлен в iOS 3.0, политика по умолчанию состояла в том, что это должно быть включено для всех приложений. Т.е. Добрый день приложение работало бы по Bluetooth, если это явно не выбрало из того поведения.
Эта политика изменилась в iOS 5.0. Новая политика состоит в том, что Добрый день приложение должно явно выбрать в к поддержке Bluetooth. Это изменение было внесено для сокращения интерференции с Wi-Fi. Для обеспечения совместимости на уровне двоичных кодов это изменение только включено для приложений, соединяющихся с iOS 5.0 SDK (или позже). Это объясняет, почему Ваш предыдущий двоичный файл приложения продолжает видеть службы Bonjour по Bluetooth, но Ваш последний двоичный файл, созданный с современным SDK, не делает.
iOS 7 представил новое свойство NSNetService, includesPeerToPeer
, то, что можно установить для явного включения регистрации и открытия по Bluetooth. Если Ваше выполнение приложения на iOS 7 и позже, можно просто установить то свойство, и Вы сделаны.
Если Ваше выполнение приложения на iOS 5 или 6 и Вы хотите повторно включить Добрый день по Bluetooth, необходимо переключить на использование низкоуровневого DNS-SD API (<dns_sd.h>
). Для примера того, как интегрировать DNS-SD API в приложение Какао, смотрите на Пример кода 'DNSSDObjects'.
Как только Вы приняли DNS-SD API, можно установить interfaceIndex
параметр для явного управления интерфейсами, по которым это работает. Стандартное значение для этого параметра, kDNSServiceInterfaceIndexAny
, приводит к политике по умолчанию, как объяснено выше. Можно изменить это путем передачи в kDNSServiceFlagsIncludeP2P
флаг, как показано в Таблице 1. Также можно просмотреть для служб по Bluetooth, и только по Bluetooth, путем передачи kDNSServiceInterfaceIndexP2P
к interfaceIndex
параметр.
Версия ОС | Версия SDK | kDNSServiceFlagsIncludeP2P | Поведение |
---|---|---|---|
<5.0 | любой | любое значение | все интерфейсы, включая Bluetooth |
≥ 5.0 | ≥ 5.0 | ясный | все интерфейсы, исключая Bluetooth |
≥ 5.0 | любой | набор | все интерфейсы, включая Bluetooth |
История версии документа
Дата | Примечания |
---|---|
14.11.2013 | Обновленный для отражения изменений в iOS 7 (r. 10264938). |
05.01.2012 | Обновленный для ссылки на новый пример кода DNSSDObjects. |
19.10.2011 | Новый документ, описывающий, как Добрый день по Bluetooth изменился в iOS 5 и позже. |