我试图在我的 Win 10 IoT UWP C# 应用程序中控制蓝牙 LE 设备的连接/断开,在 Raspberry Pi 3 SBC 上运行。Win 10 IoT 是 Windows Insiders Preview 版本 10.0.17035.1000。当我启动我的应用程序时,它识别广告 BLE 设备,成功连接并与之通信。然后我尝试通过应用推荐的程序断开此设备的连接:
device.Dispose();
设备 = 空;
GC.Collect();
甚至停止并重新启动 BluetoothLEAdvertisementWatcher。但是当这个设备再次开始广告时,它就无法识别了。据我了解,原因是该设备实际上并未断开连接(尽管它显示断开连接状态)或某些连接信息仍处于待处理状态,这会阻止它在新广告中被识别。
即使我不应用上述程序,也无法识别新设备广告(来自相同或其他 BLE 设备),在这两种情况下,唯一的方法是重新启动 Win 10 IoT 并重新启动应用程序以获取新广告从同一设备被识别。与设备的通信完成后,可以识别来自不同设备的同一类型的广告。但是当第二个设备完成通信时,不能再次识别来自它或第一个设备的新广告。在调试模式下没有报告异常或其他问题。这在应用程序生产版本中确实是不可接受的。
请告诉我如何解决这个问题。谢谢。