我的上一个问题里面 if ((strcmp(p_gap_evt->params.connected.peer_addr.addr, DEVICE_ADDR_1) == 0) || (strcmp(p_gap_evt->params.connected.peer_addr.addr, DEVICE_ADDR_2) == 0) || (p_ble_evt->evt.gap_evt.params.connected.peer_id_addr_info.p_id_addr->addr_type == BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE)这里为什么是判断设备地址而不是设备名称或者UUID呢?
时间: 2023-10-28 22:04:38 浏览: 95
在 BLE(蓝牙低功耗)协议中,每个设备都有一个唯一的 MAC 地址作为其硬件标识符。因此,通过检查连接事件中的设备地址,可以确定正在连接的设备。而设备名称和 UUID(通用唯一标识符)是可配置的,并且可以在不同的设备之间重复使用。因此,使用设备地址更可靠地确定正在连接的设备。此外,代码中还检查了设备地址类型是否为 BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE,这是为了支持使用随机私有可解析地址的设备。
阅读全文