【发布时间】:2018-05-22 00:06:26
【问题描述】:
我正在尝试在我的 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 并按顺序重新启动应用程序来自同一设备的新广告要被识别。与设备通信完成后,就可以识别出来自同类型不同设备的广告。但是当第二个设备完成通信时,无法再次识别来自它或第一个设备的新广告。在调试模式下没有报告异常或其他问题。这在应用程序生产版本中确实是不可接受的。
请告诉我如何解决这个问题。谢谢。
【问题讨论】:
-
实际上只有一个来自不同BLE设备的新广告只被识别一次,而来自已服务设备的其他广告则无法识别。