3

GAP サービス (0x180) の特性と 0x2A04 に書き込もうとしています

0x2A04 (接続パラメーター) または 0x0200 (デバイス名) に書き込もうとすると、

    var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(GattDeviceService.GetDeviceSelectorFromShortId(0x1800));
    var service = await GattDeviceService.FromIdAsync(devices[0].Id);

    var gapData = service.GetCharacteristics(new Guid("00002A04-0000-1000-8000-00805f9b34fb"))[0];
    var raw = await gapData.ReadValueAsync();

    byte[] conParas = new byte[raw.Value.Length];
    DataReader.FromBuffer(raw.Value).ReadBytes(conParas);
    //I can breakpoint and verify that the read works fine

    var status = await gapData.WriteValueAsync(conParas.AsBuffer());

そしてWriteValueAsync()を呼び出すと、プログラムはその行で中断し、私の例外は

タイプ 'System.UnauthorizedAccessException' の例外が mscorlib.dll で発生しましたが、ユーザー コードで処理されませんでした

追加情報: アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

パラメータが拒否されているスタックのレベルがよくわかりません-パラメータがBLEデバイスに到達しているかどうかさえわかりません。ただ、他のGATTサービスへの書き込みやGAP特性からの読み込みはできるので、デバイスだと思います。

この問題がどこから来ているかを発見するための絶対確実な方法を誰でも見ることができますか?

ありがとうトーマス

4

1 に答える 1