2

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

В конце концов, я продолжаю ссылаться на CBPheripheral и CBCharacteristic, в которых я заинтересован. Теперь, в следующий раз, я пытаюсь напрямую записывать в сохраненные периферийные устройства и характеристики. Но я получаю ниже предупреждения Bluetooth. Не можем ли мы напрямую писать в характеристики периферийных устройств, если мы еще не отсоединились от него?

BTBeaconTest [1421: 60b] CoreBluetooth [ВНИМАНИЕ] не является допустимым периферийное

[iPeripheral writeValue:dataToWrite forCharacteristic:iCharacterstic type:CBCharacteristicWriteWithResponse]; 

PS: Я не отключиться от периферийного устройства.

+0

Привет, Abhinav Есть ли какие-либо спецификации, которые необходимо реализовать в Peripheral для получения данных из приложения iOS? – Tendulkar

+0

Да. Apple определила все спецификации на портале разработчиков. Пожалуйста, проверьте и дайте мне знать, если вы ищете что-то конкретное. – Abhinav

ответ

1

Скорее всего, стек bluetooth был сброшен или по какой-то другой причине ваше периферийное устройство стало недействительным. Вам необходимо следить за обновлениями состояния, и если вы когда-либо получаете OFF или RESETTING, то аннулируйте все свои ручки до периферийных устройств и характеристик. Как правило, лучше поддерживать только ссылку на периферию и искать характеристики, когда они вам понадобятся. CoreBluetooth собирается кэшировать их для вас, поэтому поиск будет очень быстрым. Этот ответ показывает вам, как это сделать: https://stackoverflow.com/a/18091617/768935

Смежные вопросы