diff --git a/components/bt/bluedroid/stack/btm/btm_ble_addr.c b/components/bt/bluedroid/stack/btm/btm_ble_addr.c index d62717fae..785ed733f 100644 --- a/components/bt/bluedroid/stack/btm/btm_ble_addr.c +++ b/components/bt/bluedroid/stack/btm/btm_ble_addr.c @@ -65,6 +65,23 @@ static void btm_gen_resolve_paddr_cmpl(tSMP_ENC *p) p_cb->set_local_privacy_cback = NULL; } + if (btm_cb.ble_ctr_cb.inq_var.adv_mode == BTM_BLE_ADV_ENABLE){ + BTM_TRACE_DEBUG("Advertise with new resolvable private address, now."); + /** + * Restart advertising, using new resolvable private address + */ + btm_ble_stop_adv(); + btm_ble_start_adv(); + } + if (btm_cb.ble_ctr_cb.inq_var.state == BTM_BLE_SCANNING){ + BTM_TRACE_DEBUG("Scan with new resolvable private address, now."); + /** + * Restart scaning, using new resolvable private address + */ + btm_ble_stop_scan(); + btm_ble_start_scan(); + } + /* start a periodical timer to refresh random addr */ btu_stop_timer_oneshot(&p_cb->raddr_timer_ent); #if (BTM_BLE_CONFORMANCE_TESTING == TRUE)