2017-08-16 65 views
1

我已經創建了一個簡單的C#.NET框架控制檯應用程序。獲取C#.NET框架中的藍牙設備列表

其中,我試圖獲得當前連接到計算機的配對藍牙設備的列表。但是,我無法弄清楚,如何從代碼中訪問任何藍牙服務。

我環顧了互聯網,所有我能找到的是一種在通用Windows項目(UWP)中執行此操作的方法,我可以簡單地使用using Windows.Devices.Bluetooth命名空間,其中包含我需要的所有東西,但是在.NET中框架控制檯應用程序,此命名空間不可用。

我不需要任何先進的方式來處理藍牙,我需要的只是當前連接和配對的藍牙設備列表。

回答

2

嘗試使用下面的代碼:

  BluetoothClient client = new BluetoothClient(); 
      List<string> items = new List<string>(); 
      BluetoothDeviceInfo[] devices = client.DiscoverDevicesInRange(); 
      foreach (BluetoothDeviceInfo d in devices) 
      { 
       items.Add(d.DeviceName); 
      } 

您將通過包管理器控制檯安裝32feet.NET得到BluetoothClient的參考。

PM> Install-Package 32feet.NET -Version 3.5.0 

安裝後,你會得到在引用InTheHand.Net.Personal DLL 然後添加使用InTheHand.Net.Sockets命名空間;在你的代碼

現在,您將能夠訪問BluetoothClient

希望這有助於!

+0

這很好,謝謝。您能否擴展答案以包含一種方法來檢測這些設備是否在範圍內?例如,我想查看配對的BT設備列表,看看它們中的任何一個是否實際存在並打開。 (DiscoverDevicesInRange僅列出了具有發現模式的設備,但沒有配對的設備,這些設備的發現模式已關閉,但由於它們已配對,因此無論如何都可以訪問) – Askerman

+0

您是否嘗試過client.DiscoverDevices()而不是client.DiscoverDevicesInRange();也有各種超載版本的DiscoverDevices可能會解決您的問題 – jANVI

+1

我確實嘗試了所有這些,但問題是它始終返回配對的設備,即使它們已關閉(我也嘗試了設備信息中的「連接」屬性即設備列表中的所有項目都具有,但它始終返回false,即使該設備在範圍內且具有藍牙功能) – Askerman