在 Windows 10 上获取已连接的蓝牙设备列表
Posted
技术标签:
【中文标题】在 Windows 10 上获取已连接的蓝牙设备列表【英文标题】:Getting a list of already connected bluetooth devices on Windows 10 【发布时间】:2019-01-02 16:50:03 【问题描述】:这个问题可能很愚蠢,也许第一个被接受的答案会解释为什么这不是预期的用例。
是否可以获得已经连接到机器的BT设备列表?
这台机器是 Win10 机器,使用“纯”C#/.Net 会很好,虽然也有 32 英尺。 BT 设备不是 BTLE(低能量)。
设备已通过正常的 Windows 例程连接,目标是获取有关设备和连接状态的某种状态信息。
附录:我搜索了很多,大多数结果都在谈论如何配对和/或连接,Win7、8 和 10 的不同功能让我很困惑。这就是为什么我这次不想包含任何代码:-)
我看到 Getting a list of bluetooth devices in a C# .NET framework 并阅读了答案和 cmets。它显然不是关于 UWP 而是 CLI,而且它似乎不起作用。即使是 32 英尺,因为对 DiscoverDevicesInRange 的建议 API 调用会查找范围内且处于“可发现模式”的设备。尚未连接。在问题本身中,它声明它应该清楚地与 Windows.Devices.Bluetooth 一起使用,但我找不到任何真正有效的东西。
【问题讨论】:
Getting a list of bluetooth devices in a C# .NET framework的可能重复 太晚了....已经被标记了。 在 UWP 中应该是可能的,因为我一直在研究 UWP 中提供的 Wifi API,我们可以得到所有可用接入点的列表。 docs.microsoft.com/en-us/windows/desktop/api/bluetoothapis/… 致所有人:感谢您的提示和答案。我会尝试这些并报告回来,可能需要一周(节假日!):-) 【参考方案1】:您可以使用DeviceInformation.FindAllAsync(String)方法找到已配对或已连接的蓝牙设备,您可以指定字符串为BluetoothDevice.GetDeviceSelectorFromPairingState(true)
或BluetoothDevice.GetDeviceSelectorFromConnectionStatus(BluetoothConnectionStatus.Connected)
,如下代码。
//Paired bluetooth devices
DeviceInformationCollection PairedBluetoothDevices =
await DeviceInformation.FindAllAsync(BluetoothDevice.GetDeviceSelectorFromPairingState(true));
//Connected bluetooth devices
DeviceInformationCollection ConnectedBluetoothDevices =
await DeviceInformation.FindAllAsync(BluetoothDevice.GetDeviceSelectorFromConnectionStatus(BluetoothConnectionStatus.Connected));
更多信息可以看话题Enumerate devices和官方DeviceEnumerationAndPairing样例。
【讨论】:
如何识别设备是否已关闭或不在可发现范围内以上是关于在 Windows 10 上获取已连接的蓝牙设备列表的主要内容,如果未能解决你的问题,请参考以下文章