gpt4 book ai didi

c# - 低功耗蓝牙连接参数更新 - 导致 HRESULT : 0x80070005 (E_ACCESSDENIED))? 的设备或窗口

转载 作者:可可西里 更新时间:2023-11-01 09:28:58 26 4
gpt4 key购买 nike

我正在尝试写入 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(),程序在该行中断,我的异常是

An exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll but was not handled in user code

Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我不太确定参数被拒绝的堆栈级别 - 我什至不知道参数是否到达了 BLE 设备。但是,由于我可以写入其他 GATT 服务并从 GAP 特性中读取,我相信它就是设备。

任何人都可以找到一个万无一失的方法来发现这个问题的根源吗?

谢谢托马斯

最佳答案

我以前遇到过这个问题。微软似乎不喜欢你写信给 GAP。

我建议您构建 Gatt.XML,使其仅包含 GAP 中的“名称”和“外观”服务(仅这 2 个服务),然后将其余特征置于自定义服务或标准服务下。

如果您尝试写入在自定义服务下启用写入的特性,它应该可以工作。

总结:您不能写入 GAP 下的特征。

引用:重构我设备的 Gatt.XML 为我解决了同样的问题。

其他详细信息:对于这些“拒绝访问”错误,您要检查:1) 您手动编辑了您的包 list 功能,以包含您的 Gatt.XML 拥有的服务。您必须指定类似的自定义服务和标准服务。2) 您的 Gatt.XML 结构正确。3) 您尝试写入的特性存在/设备当前已配对。

干杯,波格皮

关于c# - 低功耗蓝牙连接参数更新 - 导致 HRESULT : 0x80070005 (E_ACCESSDENIED))? 的设备或窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com