上下文是以下內容,我們有多個包含藍牙到串行設備的卡車,我們給每個卡車藍牙一個唯一的名稱以便能夠連接到特定的卡車。從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()
功能。這有效,但我想知道是否有一個更清潔的解決方案,因爲如果字符串格式更改,解析字符串可能是一個真正的問題。
有沒有辦法檢索藍牙設備的名稱,而不必要求使用所有的藍牙設備,直到我們找到它?
是的,它的工作,我標記你的答案被接受。謝謝 –