Bluetooth 接続による StreamSocket に問題があります。
私は電話 Nokia Lumia 920 といくつかの Bluetooth ヘッドセットを持っています。このヘッドセットには独自のサービスがあります。このサービスのuuidを知っています。
このサービスと通信するためのコードを実装しました。
PeerFinder.AlternateIdentities["Bluetooth:ペアリング"] = ""; var peers = await PeerFinder.FindAllPeersAsync(); StreamSocket ソケット = 新しい StreamSocket(); var uuid = "uuid あり"; await socket.ConnectAsync(peers[0].HostName, uuid, SocketProtectionLevel.PlainSocket);
このコードは成功しました。
次に、IOutputStream でバイト メッセージをヘッドセットに送信します。
DataWriter dataWriter = new DataWriter(socket.OutputStream); byte[] a = {0x01, 0x01 , 0x10, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01}; dataWriter.WriteBytes(a); await dataWriter.StoreAsync();
このコードは成功しました。
次に、バイトメッセージを取得する必要があります。
DataReader dataReader = new DataReader(socket.InputStream); dataReader.InputStreamOptions = InputStreamOptions.Partial; await dataReader.LoadAsync(10); while (dataReader.UnconsumedBufferLength > 0) { バイト bb = dataReader.ReadByte(); }
このコードは成功しません。
ラインで
await dataReader.LoadAsync(10); アプリはここでハングします。しかし、応答は必然的にそうでなければなりません。
なぜこれが問題なのですか?
ソケットは、Windows Phone 8 で uuid による Bluetooth 経由の通信をサポートしていますか?
手伝って頂けますか?
皆さん、ありがとうございました。