Ich muss eine Anwendung entwickeln, die über Bluetooth Low Energy mit einem Gerät kommuniziert. Sobald die Anwendung über Bluetooth mit dem Gerät verbunden ist, empfängt und sendet sie Daten mithilfe eines gatt-Dienstes.
Die Anwendung muss in einer Windows 10-Umgebung ausgeführt werden. Bisher konnte ich die Anwendung mit den folgenden UWP-Klassen entwickeln und ausprobieren:
Sobald das Gerät erkannt und gepaart wurde, beginnt die Kommunikation. Das Hauptproblem, das ich habe, ist, dass ich nicht in der Lage bin, die Verbindung / Trennung mit dem Gerät zu steuern, dh die Verbindung startet automatisch, sobald das Gerät richtig und zuvor gepaart wurde, aber ich habe keine connect () / disconnect ( ) Methode bisher.
Gibt es eine Möglichkeit, die Verbindung mit einem bestimmten Bluetooth LE-Gerät zu steuern? Gibt es andere APIs, die es erlauben, Bluetooth zu benutzen, ohne das UWP-Framework zu verwenden, und die mehr Kontrolle über das Bluetooth bieten?
Sobald das Gerät gepaart ist, versucht es, sobald es sich in der Nähe des Windows 10-Computers einschaltet, eine Verbindung herzustellen. Dies ist ein definiertes Verhalten in Bluetooth, da das Peripheriegerät immer eine Verbindungsanforderung sendet, wenn es eingeschaltet ist.
Es gibt eine Hintergrundaufgabe für DeviceWatcher, für die Sie sich registrieren können, um Ihre App auszulösen, wenn Ihr Bluetooth-Gerät eine Verbindung herstellt. Sie können hier Beispielcode finden.
Gibt es eine Möglichkeit, die Verbindung mit einem bestimmten Bluetooth LE-Gerät zu steuern?
Ja. So initiieren Sie eine Verbindung: Wenn Sie ein BluetoothLEDevice
über FromBluetoothAddressAsync
oder FromIdAsync
erstellen, versucht das System, eine Verbindung zu diesem Peripheriegerät herzustellen, wenn es noch keine Verbindung hält.
Um eine Verbindung zu entfernen, rufen Sie die Methode close
für BluetoothLEDevice
auf. Wenn Ihre App die einzige Entität mit einem Handle für das Peripheriegerät ist, wird das System die Verbindung trennen. Wenn jedoch eine andere App oder ein Systemdienst ein Handle für das Peripheriegerät hat, wird die Verbindung nicht geschlossen.
Diese sind der BluetoothLEDevice-Dokumentation hier entnommen
Gibt es andere APIs?
Es sind keine anderen APIs in Windows 10 integriert, die mehr Kontrolle über Bluetooth bieten. Die UWP-APIs bieten die meiste Kontrolle, die Windows 10 derzeit bietet. Sie könnten einen alternativen Bluetooth-Stack verwenden, aber diese müssten separat installiert werden und wahrscheinlich andere Bluetooth-Verhalten unter Windows 10 brechen.