上下文是以下内容,我们有多个包含蓝牙到串行设备的卡车,我们给每个卡车蓝牙一个唯一的名称以便能够连接到特定的卡车。从rfcomm设备服务中检索蓝牙设备的名称
我使用此代码检索所有RFCOMM服务:
DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort))
的问题是,所有的DeviceInformation对象返回包含在Name属性而不是蓝牙设备名称RFCOMM服务的名称。当我的项目是Win 8商店应用程序时,由于name属性包含蓝牙设备名称,所以一切正常。
我发现我可以用上面的代码返回的设备ID创建一个BluetoothDevice对象,但是然后应用程序要求为所有设备使用蓝牙设备,直到找到好的为止。我想阻止Win 8商店应用程序的情况。
其次解决方案,我发现解析RFCOMM服务的设备ID看起来像这样的
Bluetooth#Bluetooth00:c2:c6:56:b0:61-00:15:be:0f:02:d7#RFCOMM:00000000:{00001101-0000-1000-8000-00805f9b34fb}
去除一切都会过去“#RFCOMM”,并使用DeviceInformation.CreateFromIdAsync()
功能。这有效,但我想知道是否有一个更清洁的解决方案,因为如果字符串格式更改,解析字符串可能是一个真正的问题。
有没有办法检索蓝牙设备的名称,而不必要求使用所有的蓝牙设备,直到我们找到它?
是的,它的工作,我标记你的答案被接受。谢谢 –