问题背景
通常情况下,蓝牙设备因距离远或信号不好会发生断开连接,但环境恢复后蓝牙设备会自动重新连接。
问题描述
部分客户想设置这个自动重新连接的时间,或者因某种原因想直接关闭自动重连。
问题分析
(1)蓝牙自动重连的实现。 在bluez里面,bluez/plugins/policy.c文件,负责解析配置文件和实现蓝牙重连的策略。 bluez/src/main.conf是蓝牙可配置文件,[Policy]部分就是重连配置。用户也可以在etc/bluetooth/目录下找到main.conf文件修改配置。
(2)配置参数 ReconnectUUIDs:设置重新连接的services ReconnectAttempts:设置重新连接的次数 ReconnectIntervals:设置连接间隔,和连接次数对应 AutoEnable:发现adapters时自动使能它
解决办法
在main.conf修改配置参数,如关闭自动重连就将连接次数设置为0即可。 不适用main.conf配置参数,直接在policy.c文件里修改默认配置。