Bluetooth 4.0 Low Energy и iOS: как определить, является ли устройство подключаемым или нет?
Можно ли, используя corebluetooth framework, определить, является ли периферийное устройство связываемым?
Должен ли я реализовать не удалось подключиться к делегату?
1 ответ
Там нет ничего в это время. В более поздних версиях BLE информация о связывании (режимы GAP) находится в профиле GAP, но ни один бит этой информации не доступен вам через CoreBluetooth. За исключением некоторых рекламных данных и ограниченных данных ответов сканирования, он предоставляет только информацию ГАТТ и ниже.
Вы можете прочитать любые свойства характеристики, чтобы узнать, требуется ли шифрование (CBCharacteristicPropertyNotifyEncryptionRequired
), что означает, что вам необходимо иметь доверенное соединение (спаренное) для доступа к нему. Это так близко, как вы собираетесь получить сейчас.
Вам не следует предлагать выполнить сопряжение при первом подключении, поэтому didFailToConnectPeripheral
здесь не поможет Вам будет предложено выполнить сопряжение только после того, как вы попытаетесь прочитать одну из зашифрованных характеристик. Таким образом, вы должны знать, прежде чем пользователю будет предложено проверить свойства признака в первую очередь.
Это из Руководства Apple по разработке аксессуаров Bluetooth:
Аксессуар не должен запрашивать сопряжение до тех пор, пока запрос ATT не будет отклонен с использованием кода ошибки недостаточной аутентификации. Подробности см. В спецификации Bluetooth 4.0, том 3, часть F, раздел 4.
Если по соображениям безопасности аксессуар требует связанного отношения с центральным, периферийное устройство должно отклонить запрос ATT с использованием кода ошибки недостаточной аутентификации, в зависимости от ситуации. В результате продукт Apple может продолжить выполнение необходимых процедур безопасности.