Служба HID не отображается

Я работаю над приложением Swift (iOS), которое подключается к устройству через BLE.

Я написал код, мне удалось подключиться к моему устройству, мне удалось получить рекламируемые данные, но когда я сканирую службы с помощью метода didDiscoverServices, я получаю только службу информации о батарее и устройстве, а не службу HID. Я вижу информацию об устройстве, батарею и службу HID в данных рекламы, но не в методе didDiscoverServices. Я могу получить доступ к характеристикам информации о батарее и устройстве в методе didDiscoverServices. Я читал во многих местах, что HID управляется iOS, а не приложением.

Есть ли способ получить доступ к сервису HID?


person SwatGuard    schedule 17.08.2017    source источник


Ответы (1)


К сожалению, нет возможности получить доступ к этой услуге. Apple активно фильтрует определенные службы BLE, поэтому вы не можете получить к ним доступ через CoreBluetooth API. В частности, служба HID over Gatt поддерживается системой, поэтому вы можете использовать свое устройство для ввода текста и т. Д., Но вы не сможете перехватывать какие-либо события в своем приложении.

Вышеупомянутая фильтрация также применяется к периферийной роли. Если вы попытаетесь добавить HID через Gatt UUID в качестве новой службы в CBPeripheralManager, вы получите сообщение об ошибке.

person Jens Meder    schedule 17.08.2017