2016-04-06 7 views
0

Ich arbeite an einer BLE-Anwendung, in der ich bestimmte Dienste nicht verfügbar machen möchte, bis ich sicher mit einem gültigen Gerät gepaart/verbunden bin. Das Problem besteht darin, dass während der Erkennung anscheinend alle primären Dienste dem Client zur Verfügung gestellt werden, damit die Verbindung hergestellt werden kann. Gibt es trotzdem irgendwelche Dienste bis zu einem späteren Zeitpunkt zu verstecken?Ist es in der Spezifikation, verborgene Dienste zu haben, bis sicher in Bluetooth Low Energy gepaart?

Antwort

1

Sie können den Inhalt der GATT-Datenbank während der Verbindung dynamisch ändern. Der GATT-Dienst und das GATT-Merkmal "Service Changed" werden verwendet, um den Kunden über solche Änderungen zu informieren ([Bd. 3, Teil G], 7.1).

Das Ausblenden des Dienstes vor dem Binden fügt nichts Brauchbares hinzu, wenn nur ein Dienst mit authentifiziertem Zugriff vorhanden ist. In beiden Fällen müssen Sie eine Verbindung herstellen, um sie zu verwenden. Die Verwaltung der Zugriffsrechte anstelle der Behandlung der GATT-Datenbankänderung wird jedoch besser in Implementierungen getestet (sofern überhaupt unterstützt).

Also ja, in der Theorie, können Sie den Dienst in Ihrem GATT db einmal gebunden, aber ich möchte lieber nicht darauf verlassen.

0

Wenn Sie Standardprofile verwenden möchten, glaube ich nicht. Die einzige Lösung, die ich mir vorstellen könnte, wäre ein benutzerdefiniertes Profil, das Daten kapselt, die nicht angezeigt werden sollen. Auch in diesem Fall werden UUIDs sichtbar sein.