2017-08-17 4 views
1

Je travaille sur une application Swift (iOS) qui se connecte à un périphérique via BLE. J'ai écrit du code, réussi à me connecter à mon appareil, réussi à obtenir les données annoncées mais quand je scanne les services en utilisant la méthode didDiscoverServices, je reçois seulement le service d'information Batterie et Appareil, pas le service HID. Je peux voir les informations sur le périphérique, la batterie et le service HID dans les données de publicité, mais pas dans la méthode didDiscoverServices. Je peux accéder aux caractéristiques des informations sur la batterie et le périphérique dans la méthode didDiscoverServices. J'ai lu à plusieurs endroits que HID est géré par iOS et non par l'application.Service HID non visible

Y a-t-il un moyen d'accéder au service HID?

Répondre

1

Malheureusement, il n'y a aucun moyen d'accéder à ce service. Apple filtre certains services BLE de sorte que vous ne pouvez pas y accéder via l'API CoreBluetooth. En particulier, le service HID over Gatt est géré par le système afin que vous puissiez utiliser votre appareil pour saisir du texte, etc., mais vous ne pourrez pas intercepter les événements de votre application.

Le filtrage susmentionné s'applique également au rôle périphérique. Si vous essayez d'ajouter le HID sur Gatt UUID en tant que nouveau service à un CBPeripheralManager, vous obtiendrez une erreur.