[英]How to control a Bluetooth LE connection on Windows 10?
我需要開發一個通過藍牙低功耗與設備通信的應用程序。 一旦應用程序通過藍牙連接到設備,它就會使用gatt服務接收和發送數據。
該應用程序需要在Windows 10環境中運行。 到目前為止,我能夠使用以下UWP類開發和嘗試應用程序:
一旦設備被發現並配對,通信就開始了。 我遇到的主要問題是我無法控制與設備的連接/斷開連接,即一旦設備正確且先前已配對,連接就會自動啟動,但我沒有找到任何連接()/斷開連接( )方法到目前為止。
有沒有辦法控制與特定藍牙LE設備的連接? 是否有其他API允許使用藍牙而不使用UWP框架,並提供更多的藍牙控制?
設備配對后,只要它靠近Windows 10計算機打開,它就會嘗試連接。 這是藍牙中定義的行為,因為外設在打開時始終會發出連接請求。
您可以注冊一個DeviceWatcher后台任務,以便在藍牙設備連接時觸發您的應用。 你可以在這里找到一些示例代碼 。
有沒有辦法控制與特定藍牙LE設備的連接?
是。 要啟動連接:當您通過FromBluetoothAddressAsync
或FromIdAsync
創建BluetoothLEDevice
時,如果系統尚未連接,則系統將嘗試啟動與該外圍設備的連接。
// Connects to a Bluetooth device, given some string deviceId
BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(deviceId);
要處理連接,請在BluetoothLEDevice
上調用close
方法。 如果您的應用程序是唯一具有外圍設備句柄的實體,則會導致系統斷開連接。 但是,如果另一個應用程序或系統服務具有外圍設備的句柄,則不會關閉連接。
// Will disconnect from the BTLE device, if you hold the only handle
bleDevice.close()
還有其他API嗎?
Windows 10中沒有任何其他API可以提供對藍牙的更多控制。 UWP API提供Windows 10當前提供的最多控制。 您可以使用備用藍牙堆棧,但這些必須單獨安裝,並可能破壞Windows 10上的其他藍牙行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.