我正在使用Visual Studio 2017下的UWP框架开发蓝牙应用程序。由于Microsoft示例(C#SDK示例BluetoothLE写得很好),一切进展顺利。
在我开发的第四天,行中的API BluetoothLEDevice.FromIdAsync
:
bluetoothLeDevice = await
BluetoothLEDevice.FromIdAsync(bleDeviceToConnect.Id);
不再在我的应用程序中工作,也没有在我使用的原始样本中作为示例(我没有触及任何内容)。
我不明白,因为我没有改变任何东西(在我的项目属性中,我的计算机上没有任何Windows更新)。当我调用该函数时,它永远不会返回。
我尝试使用某些智能手机应用程序的蓝牙对象,我的硬件运行良好。
调用是在try中进行的,但没有异常是catch,函数永远不会返回(我等了一段时间,我甚至没有超时)。
你看到了这个吗?关于如何解决它的任何输入?我完全陷入困境,无法继续前进,因为我现在无法连接任何物体......
答案 0 :(得分:0)
如果您的代码和示例代码遇到同样的问题,唯一的原因可能是您的设备无法使用 它遥不可及甚至关闭或已经连接 如果您使用的是deviceManager或deviceWatcher,那么您的操作系统也会提供过时的信息。 对于BluetoothLE,Windows设备管理器和观察器只是麻烦。
Windows有时会保留配对信息和连接状态,即使设备无法使用或关闭也是如此
很多时候,您必须在设置中删除并重新添加设备才能使其再次可用或需要重新启动
为了避免这些麻烦,我建议你使用advertWatcher
如果广告观察者找到您的设备,您知道它可以到达且可连接,并且无需在设置中添加您的BLE设备。
如果需要,我可以提供一个简单的例子。
答案 1 :(得分:0)
这可能是因为COM安全性(因为您可能知道基于WinRTYY的UWPAPI,它在COM之上工作)。 This应该有所帮助。
答案 2 :(得分:0)
大家好,感谢您对此的帮助。 我在另一台电脑上拍了一下,它运行得很好。 我今天早上仔细检查了一下,发现即使是Widnows也无法通过蓝牙连接任何东西(我尝试使用蓝牙扬声器我经常使用)。 这是一个驱动程序问题,我不知道它是如何发生的,但我的计算机驱动程序只是停止工作,我添加重新安装它。