【问题标题】:Attribute requires authentication before read/write属性需要在读/写之前进行身份验证
【发布时间】:2023-03-16 09:09:01
【问题描述】:

我使用的是带有 bluez 版本 4.101 的 Linux 计算机。我正在与处于从属模式的 BLE 设备通信。我正在尝试从 BLE 设备读取数据。但是当我这样做时,读取失败并出现以下错误:“属性需要在读/写之前进行身份验证”。我可以从许多其他特征中读取数据,但我在这一点上失败了。我使用的命令是

-gatttool -b 11:22:33:44:55:66 --char-read

我需要做什么才能读取这些数据?

注意:我可以从我的 iPhone 读取这些数据。但我需要配对,所以也许这是一个配对问题。

【问题讨论】:

    标签: bluetooth bluetooth-lowenergy bluez gatt


    【解决方案1】:

    尝试在 gatttool 中使用 --sec-level=medium--sec-level=high。我不确定这些是如何工作的,但基本上你没有正确的安全级别来读取该属性。配对提升您的安全级别,这就是它可以在您的 iPhone 上运行的原因。

    您可能还想尝试-I 使用 gatttool 进行交互式提示。

    【讨论】:

    • 工作就像一个魅力。谢谢。
    • 我正在使用这些参数,但 gatttool 从未触发与我的 BLE 设备的任何配对过程,因此我继续遇到相同的错误,提示我未通过身份验证。我使用 BlueZ 5.24(最新)和 5.11 在 Raspberry Pi 和 ubuntu VM 上进行了测试,结果相同——该设备是在 LightBlue 软件中运行虚拟外围设备的 iPhone。线索?
    • 我不确定有没有像普通蓝牙这样的配对过程...尝试阅读developer.bluetooth.org/TechnologyOverview/Pages/…我只使用了“Just Works”,不知道其余的如何工作。跨度>
    • 为了帮助解决上述@EricCastro 的问题,我还必须运行蓝牙才能使 gatttool --sec-level=medium 产生任何效果。
    • 就我而言,我仍然有问题。 --sec-level=low 完成了这项工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多