2017-08-17 4 views
1

Ich arbeite an einer Swift-App (iOS), die über BLE mit einem Gerät verbunden wird.HID-Service nicht sichtbar

Ich habe Code geschrieben, eine Verbindung zu meinem Gerät hergestellt, habe die angekündigten Daten erhalten, aber wenn ich mit der Methode didDiscoverServices nach den Diensten scanne, bekomme ich nur den Batterie- und Geräteinformationsdienst, nicht den HID-Dienst. Ich kann den Geräteinformations-, Akku- und HID-Dienst in den Werbedaten, aber nicht in der didDiscoverServices-Methode sehen. Ich kann auf die Eigenschaften der Akku- und Geräteinformationen in der Methode didDiscoverServices zugreifen. Ich habe an mehreren Stellen gelesen, dass HID von iOS und nicht von der App verwaltet wird.

Gibt es eine Möglichkeit, auf den HID-Dienst zuzugreifen?

Antwort

1

Leider gibt es keine Möglichkeit, auf diesen Dienst zuzugreifen. Apple filtert aktiv bestimmte BLE-Dienste, sodass Sie nicht über die CoreBluetooth-API darauf zugreifen können. Insbesondere wird der HID over Gatt-Dienst vom System verwaltet, sodass Sie mit Ihrem Gerät Text usw. eingeben können. Sie können jedoch keine Ereignisse in Ihrer App abfangen.

Die oben erwähnte Filterung gilt auch für die periphere Rolle. Wenn Sie versuchen, die HID über GATT UUID als neuen Dienst zu einem CBPeripheralManager hinzuzufügen, erhalten Sie eine Fehlermeldung.