如何在不使用设置应用程序的情况下在 Windows 10 平板电脑应用程序中发现未配对的蓝牙设备

问题描述 投票:0回答:2

我想知道是否可以在 Windows 10 平板电脑应用程序中以编程方式发现未配对的蓝牙设备。

我真的不想通过设置 -> 设备 -> 蓝牙进行配对。

不幸的是,我找不到任何有帮助的文档/示例。

我尝试使用 BluetoothLEAdvertisementWatcher 搜索蓝牙设备,但找不到任何设备。可能是因为这些设备不是蓝牙设备。认为这些是兼容的。

我还认为可以创建一个可以在 UWP 应用程序中重用的 CLI/C++ 包装器,但我对此感到非常不确定,因为整个 Win32 API(尤其是接口部分)不能在 UWP 中重用环境。

在最后一个选项中,我认为必须有一种方法可以获取 Windows 在输入 Settings -> Devices -> Bluetooth 时生成的设备列表,我尝试使用 DeviceWachter 来实现这一点,但没有成功。

现在我很绝望。对于我的应用程序来说,在使用之前手动配对每个设备将是可怕的。我不明白为什么微软对开发人员的削减如此之大。

预先感谢您的帮助。

c# uwp bluetooth windows-10-universal bluetooth-device-discovery
2个回答
5
投票

格蕾丝的回答是正确的。我之前尝试过这个示例,但停止了工作,因为它需要 Windows Phone,而不是 Windows 10 平板电脑。

现在我提取了 DeviceWatcher 部分,但使用选择器 BluetoothDevice.GetDeviceSelectorFromPairingState(false) 创建了 DeviceWatcher。只有使用此选择器,观察者才能找到未配对的蓝牙设备。

它还适用于:

DeviceInformation.FindAllAsync(BluetoothDevice.GetDeviceSelectorFromPairingState(false))

2
投票

我想知道是否可以在 Windows 10 平板电脑应用程序中以编程方式发现未配对的蓝牙设备。

是的,这是可能的。

我尝试使用BluetoothLEAdvertisementWatcher 搜索蓝牙设备,但找不到任何设备。可能是因为这些设备不是蓝牙设备。

您使用了错误的观察者。您需要的是 DeviceWatcher,而不是 BluetoothLEAdvertisementWatcher。它们之间的区别在于,

DeviceWatcher
用于动态枚举设备,而
BluetoothLEAdvertisementWatcher
用于接收蓝牙低功耗 (LE) 广告。

官方有一个设备枚举和配对示例,你可以参考这个示例的场景8,这个示例绝对是你所需要的。

© www.soinside.com 2019 - 2024. All rights reserved.