(Dis)BluetoothデバイスをWindows.Devices.Bluetooth.Rfcomm(WP8.1)に接続する


82

Bluetoothデバイスへの接続と切断は、Windows Phone / Desktop8.1でさまざまな結果をもたらしています。Windows.Devices.Bluetooth.Rfcomm名前空間を使用していて、Bluetoothのバージョン/クラスが異なる複数のデバイスを接続しようとしました。

  • バージョン1.2(クラス1および2)
  • バージョン2.0(クラス1および2)
  • バージョン2.1(クラス1および2)
  • Nokia Lumia625およびLumia635、Dell Latitude E6500、およびDell PrecisionM6400でテスト済み。

2.0または2.1デバイスのいずれかに接続しようとすると、問題が発生します。初めて各デバイスに接続しようとすると、すべてが正常に機能し、接続が開きます。その後、接続を閉じてデバイスを再接続すると、問題が発生します。 再接続中、接続は開かれず、デバッガーはSystem.Exceptionをスローします。

> Message: No further data is available.

また、接続が失敗すると、Windows 8.1デバイスは、自分のアプリケーションが終了した場合でも、Bluetoothデバイスに(失敗して)自分で接続しようとし続けます。Windows 8.1デバイスは、Bluetoothデバイスが接続されていると表示することもありますが、デバイスは接続されていないことを視覚的に示します。Bluetoothデバイスを再接続する唯一の方法は、ペアリングを解除し、WindowsデバイスでBluetoothをシャットダウン/再起動することです。

DeviceInformation接続に失敗した後に新しい電話をかけようとすると、以前に接続しようとしたデバイスを返すことを拒否します。

> Message: The service cannot be found in the specified name space.

奇妙な結果として、1.2デバイスは完全に機能します。

マニフェストファイル:

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="any">
    <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
  </m2:Device>
</m2:DeviceCapability>

デバイスの選択:

Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));

接続中:(id = chatserviceid)

StreamSocket _socket;    
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);

切断:

this._socket.Dispose();
this._socket = null;

私はMSDN、コードサンプル、デモ、チャンネル9ビデオ、StackOverflowを調査しましたが、に問題があるかどうかを教えてくれるリソースはありませんWindows.Devices.Bluetooth.Rfcomm

これらの奇妙な結果を認識している人はいますか?私は何か間違ったことをしていますか?

更新:Windows Phone 8.1GDR2での作業は可能な解決策です。

注:私自身と他の何人かの人々にとって、このアップデートでも同じ問題が発生します。


2
こんにちはgl77-私はあなたのMSDNアカウントでこの問題に取り組んでいます。スレッドを更新しました。詳細がわかり次第、更新します。
マットスモール

これに対する解決策を見つけましたか?あるデバイスでは機能するが、別のデバイスでは機能しないという同様の問題が発生しています。1つの注意点は、動作するデバイスはIntelのBluetoothドライバー:17.0.1401.422を実行し、動作しないデバイスはIntelのBluetoothドライバー:17.0.1405.460を実行することです。
Jon H

私はまだ解決策を見つけていません、マットのチームはまだ問題に取り組んでいます。近い将来の修正を期待しましょう。
ggg 2015年

2
ハードウェアの製造元は、Intel Bluetoothドライバーの17.0.1405.460バージョンを削除し、古い17.0.1401.422バージョンをインストールする方法を説明してくれました。それを行うと、アプリケーションが再び機能し始めました。したがって、私にとっての問題は、新しいドライバーでした。
Jon H

1
MSDNの投稿へのリンクを添付していただけますか?
サイレント2015

回答:


1

CoolTermを試して、それがうまくいくかどうかを確認します。USB接続を介してスピーカーを内部のSigmaDSPチップに接続する場合にも同様の問題が発生していたため、外部デバイスが表示されない場合は、デバイスがコンピューターと互換性がない可能性があります。CoolTermをダウンロードしてオプションに移動し、[シリアルポート]でポートを目的の接続(Bluetooth、USBなど)に変更する必要があります。次に、必要に応じてオプションを編集し、メインウィンドウに移動して[接続]をクリックし、機能するかどうかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.