蓝牙:iOS设备配对问题

3

我有一个在嵌入式设备上运行并使用Bluez 5.48的外围应用程序。我将我的服务设置为不可配对。当我尝试从Android设备连接到服务时,一切都很顺利,但是当使用iOS时,连接在一段时间后会断开,并且在btmon工具中会出现以下日志:

> ACL Data RX: Handle 68 flags 0x02 dlen 9              #1050 [hci0] 398.940027
  ATT: Error Response (0x01) len 4
    Read Request (0x0a)
    Handle: 0x0016
    Error: Insufficient Authentication (0x05)
< ACL Data TX: Handle 68 flags 0x00 dlen 7              #1051 [hci0] 398.940268
      ATT: Read Request (0x0a) len 2
        Handle: 0x0016
> ACL Data RX: Handle 68 flags 0x02 dlen 9              #1052 [hci0] 398.991500
      ATT: Error Response (0x01) len 4
        Read Request (0x0a)
        Handle: 0x0016
        Error: Insufficient Authentication (0x05)

请指导如何重新配置应用程序或重建Bluez以禁用配对。所有特征均为非保护性的。


你能在iPhone的常规蓝牙“设备”列表中看到嵌入式设备吗? - bjornruffians
1
当你说“我将我的服务设置为不可配对”时,你在这里指的是什么?这是你的BLE Gatt服务中的一个设置吗?还是通过btmgmt进行的一般外围设置。我遇到了同样的问题,但下面的修复方法对我没有起作用。 - Matt
1个回答

1

尝试重新配置应用程序以禁用传统蓝牙和绑定,如下所示:

btmgmt power off
btmgmt bredr off
btmgmt bonding off
btmgmt io-cap 0
btmgmt power on

请注意,io-cap 0会将您的IO能力设置为“仅显示”。如果这不起作用,请尝试将io-cap设置为3(无输入无输出),看看是否会有不同的结果。
此外,请确保在iOS设备的iOS设置中忘记了该设备,因为这可能会产生一些影响。

1
非常感谢您的评论,它非常有效!唯一的小问题是btmgmt使用“bondable”而不是“bonding”。 - Kerim Gökarslan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接