我正在编写一个带有SPP的Windows/Windows Phone 8.1蓝牙应用程序,最终用户需要选择要使用的配对蓝牙设备。
问题# 1:
我在试图获得与我的设备配对的蓝牙设备时遇到了麻烦。设备上只能获得所有服务。
注意:我使用的是Windows Phone 8.1设备蓝牙配对到Windows 7笔记本电脑
DeviceInformationCollection CollectionOfDeviceInfo;
PeerFinder.AlternateIdentities["Bluetooth:Paried"] = "";
//CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync();
FindAllAsync()给了我手机上的所有服务,包括配对的蓝牙和所有这些服务。
问题# 2:
我不知道我需要蓝牙为SPP提供哪些服务,如果我知道我需要蓝牙提供哪些服务,我就会从庞大的服务列表中过滤它。
我一直在看BluetoothRfcommChat和从MSDN的蓝牙通信样本,但它没有帮助。
哈,我得到RfcommServiceId。SerialPort工作。需要添加
<Capabilities>
<m2:DeviceCapability Name="bluetooth.rfcomm">
<m2:Device Id="any">
<m2:Function Type="name.serialPort"/>
</m2:Device>
</m2:DeviceCapability>
</Capabilities>
到我的包。appxmanifest(提示:右键点击->查看代码)
Then my line
CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
伟大的工作。
为了解决这个问题,我让BluetoothRfcommChat在Windows 8.1笔记本电脑和我的Windows Phone 8.1设备上工作。我确实需要在配对后重新启动笔记本电脑,并从启动栏运行应用程序,而不是从调试中运行。手机端我不需要重启,可以从调试中运行。