我想知道是否可以在 Windows 10 平板电脑应用程序中以编程方式发现未配对的蓝牙设备。
我真的不想通过设置 -> 设备 -> 蓝牙进行配对。
不幸的是,我找不到任何有帮助的文档/示例。
我尝试使用 BluetoothLEAdvertisementWatcher 搜索蓝牙设备,但找不到任何设备。可能是因为这些设备不是蓝牙设备。认为这些是兼容的。
我还认为可以创建一个可以在 UWP 应用程序中重用的 CLI/C++ 包装器,但我对此感到非常不确定,因为整个 Win32 API(尤其是接口部分)不能在 UWP 中重用环境。
在最后一个选项中,我认为必须有一种方法可以获取 Windows 在输入 Settings -> Devices -> Bluetooth 时生成的设备列表,我尝试使用 DeviceWachter 来实现这一点,但没有成功。
现在我很绝望。对于我的应用程序来说,在使用之前手动配对每个设备将是可怕的。我不明白为什么微软对开发人员的削减如此之大。
预先感谢您的帮助。
格蕾丝的回答是正确的。我之前尝试过这个示例,但停止了工作,因为它需要 Windows Phone,而不是 Windows 10 平板电脑。
现在我提取了 DeviceWatcher 部分,但使用选择器 BluetoothDevice.GetDeviceSelectorFromPairingState(false) 创建了 DeviceWatcher。只有使用此选择器,观察者才能找到未配对的蓝牙设备。
它还适用于:
DeviceInformation.FindAllAsync(BluetoothDevice.GetDeviceSelectorFromPairingState(false))
我想知道是否可以在 Windows 10 平板电脑应用程序中以编程方式发现未配对的蓝牙设备。
是的,这是可能的。
我尝试使用BluetoothLEAdvertisementWatcher 搜索蓝牙设备,但找不到任何设备。可能是因为这些设备不是蓝牙设备。
您使用了错误的观察者。您需要的是 DeviceWatcher,而不是 BluetoothLEAdvertisementWatcher。它们之间的区别在于,
DeviceWatcher
用于动态枚举设备,而 BluetoothLEAdvertisementWatcher
用于接收蓝牙低功耗 (LE) 广告。
官方有一个设备枚举和配对示例,你可以参考这个示例的场景8,这个示例绝对是你所需要的。