获取C#.NET框架中的蓝牙设备列表

获取C#.NET框架中的蓝牙设备列表,c#,.net,bluetooth,C#,.net,Bluetooth,我创建了一个简单的C#.NET框架控制台应用程序 在其中,我试图获取当前连接到计算机的配对蓝牙设备的列表。但是,我不知道如何从代码中访问任何蓝牙服务 我环顾了一下internet,我所能找到的就是在一个通用windows项目(UWP)中实现这一点的方法,在这个项目中,我可以简单地使用使用windows.Devices.Bluetooth命名空间,该命名空间包含了我需要的所有内容,但是在.NET framework控制台应用程序中,该命名空间不可用 我不需要任何先进的方式来使用蓝牙,我只需要一份当

我创建了一个简单的C#.NET框架控制台应用程序

在其中,我试图获取当前连接到计算机的配对蓝牙设备的列表。但是,我不知道如何从代码中访问任何蓝牙服务

我环顾了一下internet,我所能找到的就是在一个通用windows项目(UWP)中实现这一点的方法,在这个项目中,我可以简单地使用
使用windows.Devices.Bluetooth
命名空间,该命名空间包含了我需要的所有内容,但是在.NET framework控制台应用程序中,该命名空间不可用

我不需要任何先进的方式来使用蓝牙,我只需要一份当前已连接和配对的蓝牙设备列表。

尝试使用以下代码:

            BluetoothClient client = new BluetoothClient();
            List<string> items = new List<string>();
            BluetoothDeviceInfo[] devices = client.DiscoverDevicesInRange();
            foreach (BluetoothDeviceInfo d in devices)
            {
                items.Add(d.DeviceName);
            }
安装后,您将在参考中获得.Net.Personal中的dll 然后使用InTheHand.Net.Sockets添加名称空间在您的代码中

现在您将能够访问BluetoothClient


希望这有帮助

太好了,谢谢你。能否请您将答案扩展到包括一种检测这些设备是否在范围内的方法?例如,我想查看配对BT设备的列表,看看它们中是否有任何设备实际存在并打开。(DiscoverDevicesInRange仅列出打开查找模式的设备,但不列出关闭查找模式的配对设备,但这些设备在配对后仍可访问)您是否尝试了client.DiscoverDevices()而不是client.DiscoverDevicesInRange();此外,还有各种重载版本的DiscoverDevices可能会解决您的问题。我确实尝试过所有这些,但问题是它总是返回配对的设备,即使它们已关闭(我还尝试了设备信息中连接的属性,设备列表中的所有项目都有该属性,但它总是返回false,即使设备在范围内并且打开了蓝牙)我很好奇:你说使用Windows.Devices.bluetooth很简单。你能给我一个提示,哪些方法可以实现这一点吗?
PM> Install-Package 32feet.NET -Version 3.5.0