完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开发板 ESP32S3 C。 win11 vscode。
在代码中 ESP_GAP_BLE_AUTH_CMPL_EVT 认证成功事件中,把对端设备的esp_ble_bond_dev_t *dev_list.bd_addr。这个值通过esp_ble_gap_update_whitelist,这个接口添加到白名单中,并设置在广播的时候ADV_FILTER_ALLOW_SCAN_WLST_CON_ANY。只有白名单可以扫描可以连接。但是测试的时候出现了一下现象: 1、连接安卓手机,绑定并添加白名单成功,断开安卓手机,苹果手机和我的WIN11电脑仍然可以扫描到。 2、连接苹果手机,绑定并添加白名单成功,断开苹果手机,安卓手机无法扫描到,但是win11电脑依然可以扫描到。。 3、连接win11电脑,绑定并添加白名单成功,断开win11电脑,按说手机无法扫描到。 是我哪里设置有问题还是白名单机制有问题。 |
|
相关推荐
3个回答
|
|
最终我没有用白名单,也没有用定向广播的方式解决了绑定设备只能和绑定手机通信的功能。利用了如果设备绑定之后就不再发射全部广播信息的功能,至发射最简单的空包广播,让绑定设备可以搜索到,没绑定的设备不能搜索到就实现了。。。
|
|
|
|
现在就是安卓在设备断开什么的都没有问题,就是苹果,关闭了设置里面的蓝牙再打开就无法搜索到定型广播的信号了。换了个苹果手机还是一样的问题。。。。 我看蓝牙协议上说是定向广播的时间间隔比较低,超过1.28s之后就不再广播了。咱们的控制器也是这么实现的吗?我刚才测试了一下,在设备未连接的情况一下,定时2秒 stop adv一次 再start adv一次。来保证设备是一直在处于定向广播的过程中。但是苹果还是现在这个状态,关闭蓝牙之后再打开还是无法连接。 感觉也不像是苹果手机的问题,因为我的蓝牙鼠标和苹果绑定之后无论重启手机,还是关掉蓝牙,在蓝牙再次打开的时候,只要鼠标在定向广播模式
|
|
|
|
白名单之外的苹果手机仍然能扫描到,可能与苹果的扫描过滤策略或者 app 缓存有关 定向广播需要设定广播者和发起者的两个广播 own_addr_type 需要看是否使用了 rpa 地址或者 静态随机地址,如 gatt_security_server 示例中就是使用了rpa 地址,这里 own_addr_type = BLE_ADDR_TYPE_RANDOM peer_addr_type 看对端设备连接过来的地址类型进行判断,一般手机使用的都是 rpa 地址 peer_addr 也必须copy 为对端地址,对端地址可以在首次配对时 ESP_GAP_BLE_AUTH_CMPL_EVT 事件
|
|
|
|
只有小组成员才能发言,加入小组>>
733 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
444浏览 5评论
445浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 08:20 , Processed in 0.547035 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号