簡體   English   中英

如何在Windows 10上控制藍牙LE連接?

[英]How to control a Bluetooth LE connection on Windows 10?

我需要開發一個通過藍牙低功耗與設備通信的應用程序。 一旦應用程序通過藍牙連接到設備,它就會使用gatt服務接收和發送數據。

該應用程序需要在Windows 10環境中運行。 到目前為止,我能夠使用以下UWP類開發和嘗試應用程序:

DeviceWatcher

BluetoothLEDevice

一旦設備被發現並配對,通信就開始了。 我遇到的主要問題是我無法控制與設備的連接/斷開連接,即一旦設備正確且先前已配對,連接就會自動啟動,但我沒有找到任何連接()/斷開連接( )方法到目前為止。

有沒有辦法控制與特定藍牙LE設備的連接? 是否有其他API允許使用藍牙而不使用UWP框架,並提供更多的藍牙控制?

設備配對后,只要它靠近Windows 10計算機打開,它就會嘗試連接。 這是藍牙中定義的行為,因為外設在打開時始終會發出連接請求。

您可以注冊一個DeviceWatcher后台任務,以便在藍牙設備連接時觸發您的應用。 你可以在這里找到一些示例代碼

有沒有辦法控制與特定藍牙LE設備的連接?

是。 要啟動連接:當您通過FromBluetoothAddressAsyncFromIdAsync創建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()

這些來自此處BluetoothLEDevice文檔。

還有其他API嗎?

Windows 10中沒有任何其他API可以提供對藍牙的更多控制。 UWP API提供Windows 10當前提供的最多控制。 您可以使用備用藍牙堆棧,但這些必須單獨安裝,並可能破壞Windows 10上的其他藍牙行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM