ch571F蓝牙白名单,苹果手机无法连接

开始的时候设置蓝牙白名单策略为任何设备都可以扫描连接,需要配对但是不可绑定:

GAP_FILTER_POLICY_ALL?

GAPBOND_PAIRING_MODE_INITIATE

isBonding=FALSE

通过GAPBondMgr_SetParameter、GAPRole_SetParameter设定参数

使用苹果手机连接,正常配对没问题,配对成功后调用LL_addWhiteList函数保存苹果手机的addrType和addr(苹果的addrType是3而不是0,不知道后续的现象是不是与这个有关系,如果有关系该怎么解决呢?),添加白名单后修改白名单策略、配对策略为:

GAP_FILTER_POLICY_WHITE_CON?

GAPBOND_PAIRING_MODE_NOPAIR

通过GAPBondMgr_SetParameter、GAPRole_SetParameter设定参数,

断开苹果设备后重新连接,在571的Peripheral_LinkTerminated函数中重新打开广播,此时该苹果设备没法连接ch571F了,手机提示连接超时。

请问想要实现苹果设备断开后,只有之前连接过的苹果设备才能重连,这个怎么处理呢?


请问有解决办法吗


    您好,手机的蓝牙MAC地址属于私有地址,是随着时间变化而变化的,因此我们需要解析地址才可以使用白名单回连上手机设备,白名单设置代码如下:

    uint8 syncWL = TRUE;

    GAPBondMgr_SetParameter( GAPBOND_AUTO_SYNC_RL, sizeof( uint8 ), &syncWL );

    uint8 filter_policy = GAP_FILTER_POLICY_WHITE;      //只允许白名单设备扫描和连接

    GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy );//设置白名单



有不需要绑定的方法吗?只设置白名单而不是绑定


手机这边地址是变动的,没法获取到它的准确的6位地址,故无法使用白名单进行连接

且如果白名单设备的地址固定不变,例如另一颗CH57x,CH58x做主机,可以参考这篇博客修改:https://www.cnblogs.com/gscw/p/17211435.html



只有登录才能回复,可以选择微信账号登录