2016-11-21 21 views
1

私は、Windows 8.1以上のBluetooth Low Energy用WinRT APIを使用してアプリケーションを開発しています。それはしばらくの間働いていますが、私は深刻な問題に遭遇しました.Windowsを再起動してもソフトウェアはデバイスに接続できません。Windows RT Bluetooth LE APIを搭載した.NET - Windowsの再起動後にデバイスを読み書きできない

ソフトウェアを終了して再起動しても、それはまだペアになりません。動作する唯一のことは、デバイスとペアにして再ペアリングする場合です。しかし、ユーザーのユースケースを考えると、これはまったく受け入れられません。 iOSとのペアリングや対話が可能なため、デバイスファームウェアに問題はありません。

デバッグ時に、txCharacteristic.WriteValueAsync(chunk, GattWriteOption.WriteWithoutResponse)を使用してデバイスに書き込もうとすると、「不正な機能」が発生します。しかし、私はこれが正しい機能であることを知っています。これはデバイスがサポートしているものなので、私はペアを解除して再ペアを設定しても問題ありません。私はPresentationFormatsプロパティを展開しようとすると、また、私はこのエラーを取得する:

PresentationFormats「this.txServiceCharacteristic.PresentationFormatsは、」タイプ「System.AccessViolationException」System.Collections.Generic.IReadOnlyList {} System.AccessViolationException

の例外を投げました

これは、これがWindowsでの問題であることを私に伝えています。私は現在10を実行しています。

私は、Bluetoothサービスを自動的に開始するように設定しました(デフォルトマニュアルの "トリガ"スタートから)。この問題を緩和するものはありません。誰もがこれを引き起こしている可能性のあるアイディアを持っていますか?

ありがとうございます!

EDIT:GattProtectionLevelをEncryptionAndAuthenticationRequiredからPlainに変更すると、明らかにエラーが修正されます。しかし、Windowsの再起動後にEncryptionAndAuthenticationRequiredが不正なモードになるのはなぜですか?

答えて

1

私の編集で述べたように、GattProtectionLevelEncryptionAndAuthenticationRequiredからPlainに変更すると、エラーは修正されます。

ここでは、この意味で暗号化や認証がないことを心配していました。しかし、確かにBluetoothパケットスニッファを使用した後は、このようには見えません。これは、のペアでのペアで暗号化と認証の詳細が行われ、の接続ではなく、に行われるためです。 documentationパー

平野:デフォルトの保護レベルを使用します。

Plainは、Noneを意味しません。これは、「デバイスが必要とする最低限のセキュリティを使用する」ことを意味します。つまり、本質的に、ペアタイムでどのような情報が得られたかに基づいて自動的に行われます。

関連する問題