连接和断开蓝牙设备已在Windows Phone / Desktop 8.1上提供了各种结果。我一直在使用Windows.Devices.Bluetooth.Rfcomm
命名空间,我尝试连接多个具有不同蓝牙版本/类的设备。
每当我尝试连接到2.0或2.1设备时,都会出现问题。我第一次尝试连接到每个设备时,一切都会正常,连接将打开。当我随后关闭连接并重新连接设备时,问题就开始了。 在重新连接期间,连接将永远不会打开,调试器将抛出System.Exception:
> Message: No further data is available.
此外,当连接失败时,即使我自己的应用程序终止,Windows 8.1设备也会继续尝试(不成功)连接到蓝牙设备。有时,Windows 8.1设备也会将蓝牙设备显示为已连接,而设备会直观地显示它已不再连接。重新连接蓝牙设备的唯一方法是取消配对并关闭/重启Windows设备上的蓝牙。
每当我在连接失败后尝试重新调用DeviceInformation
时,它都会拒绝返回我之前尝试连接的设备。
> Message: The service cannot be found in the specified name space.
奇怪的结果是,1.2设备运行良好。
清单文件:
<m2:DeviceCapability Name="bluetooth.rfcomm">
<m2:Device Id="any">
<m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
</m2:Device>
</m2:DeviceCapability>
选择设备:
Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));
连接:(id = chatserviceid)
StreamSocket _socket;
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);
断开:
this._socket.Dispose();
this._socket = null;
我已经研究过MSDN,代码示例,演示,频道9视频和StackOverflow,没有资源可以告诉我Windows.Devices.Bluetooth.Rfcomm
是否存在问题。
有人认出这些奇怪的结果吗?难道我做错了什么?
更新:使用Windows Phone 8.1 GDR2是一种可行的解决方案。
注意:对于我自己和其他几个人来说,此更新仍会出现同样的问题。
答案 0 :(得分:1)
我会尝试CoolTerm,看看它是否适合你。我有一个类似的问题,通过USB连接将扬声器与Sigma DSP芯片连接在一起,因此如果您在查看外部设备时遇到问题,可能是设备与您的计算机不兼容。下载CoolTerm并转到选项并在串行端口下,您应该将您的端口更改为所需的连接(蓝牙,USB等)然后根据需要编辑选项并转到主窗口并点击连接,看看它是否适合您。