私は、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が不正なモードになるのはなぜですか?