2013-01-09 158 views
1

我試圖用一個通用藍牙耳機連接Windows Phone 8手機,使用存儲在NFC標籤上的一些信息。至於藍牙的一部分,它應該有可能找到配對的設備,其是有效的,使用以編程方式將WP8設備連接到藍牙耳機

PeerFinder.AlternateIdentities["Bluetooth:Paired"] = ""; 
var peers = await PeerFinder.FindAllPeersAsync(); 

和呼叫

等待socket.ConnectAsync(peer.HostName, 服務名);

連接到特殊設備。但是,我無法獲得serviceName。根據文檔,該設備應返回PeerInformation.ServiceName廣告服務,但我只收到空白字符串。

是否有一些解決方法可以獲得支持的服務(藍牙配置文件)的nams?我特別需要使用A2DP配置文件連接bt設備,但我無法獲取(甚至在互聯網上找到)正確的服務名稱字符串。

回答

1

ConnectAsync爲調用程序發送/接收數據打開一個套接字。這不是你想要的,而是你希望操作系統連接到耳機服務。在Win32的BluetoothSetServiceState,但我不知道一個等效的'現代'的API。

而且在Win32中一個可以使用BluetoothAuthenticateDeviceEx這將導致配對, *可能*連接耳機服務 - 以飽滿外的帶外驗證,如果通過NFC信道提供。我再次不知道一個等價物。

我想有一種可能性,即對任意端點(例如"15")執行ConnectAsync將導致配對啓動,然後完成並啓用耳機服務...... ConnectAsync調用本身將失敗,但它是副作用,我們感興趣的效果可能值得一試。

大概你從NFC通信中獲得耳機設備的設備地址?如果是這樣,您可以創建HostName對象在ConnectAsync使用彼得描述:http://peterfoot.net/PersistBluetoothAddressesOnWindowsPhone8.aspx

+0

你是我的救命恩人。 :)將ConnectAsync用於任意端點似乎正在工作。至於NFC:我只能使用存儲了一些短信息的被動式令牌,所以我在考慮存儲藍牙設備的MAC地址。然後我可以發現配對的設備並連接到具有所需MAC地址的設備。 –

+1

好!樂意效勞。你可以(顯然)使用MAC地址而不需要做發現......回答編輯#2。 – alanjmcf

相關問題