1

NFC タグに保存されている情報を使用して、Windows Phone 8 電話を一般的な Bluetooth ヘッドセットに接続しようとしています。Bluetooth部分に関しては、アクティブなペアリングされたデバイスを見つけることができるはずです

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

そして電話する

await socket.ConnectAsync(peer.HostName, serviceName);

特定のデバイスに接続します。ただし、を取得できませんserviceName。ドキュメントによると、デバイスはアドバタイズされたサービスを で返す必要がありますがPeerInformation.ServiceName、空の文字列しか取得できません。

サポートされているサービス (Bluetooth プロファイル) の名前を取得する方法の回避策はありますか? 特に A2DP プロファイルを使用して bt デバイスを接続する必要がありますが、正しいサービス名の文字列を取得できません (またはインターネットで見つけることさえできません)。

4

1 に答える 1

1

ConnectAsync呼び出し元プログラムがデータを送受信するためのソケットを開きます。それはあなたが望むものではなく、OS がヘッドセット サービスに接続することを望んでいます。Win32BluetoothSetServiceStateではそうですが、同等の「最新の」API は知りません。

また、Win32BluetoothAuthenticateDeviceExでは、ペアリングを引き起こすものを使用して *おそらく* ヘッドセット サービスを接続できます。また、NFC チャネルによって提供される場合は、完全な帯域外認証を使用できます。繰り返しますが、私は同等のものを知りません。

任意のエンドポイント (例: ) に対して ConnectAsync を実行する"15"と、ペアリングが開始され、ペアリングが完了してヘッドセット サービスが有効になる可能性があると思います... ConnectAsync 呼び出し自体は失敗しますが、関心のある副作用です。試してみる価値があるかもしれません。

おそらく、NFC通信からヘッドセットデバイスのデバイスアドレスを取得していますか? その場合、 Peter が説明HostNameするように、で使用するオブジェクトを作成できます: http://peterfoot.net/PersistBluetoothAddressesOnWindowsPhone8.aspxConnectAsync

于 2013-01-09T15:13:37.963 に答える