diff --git a/components/bt/host/bluedroid/api/include/api/esp_gap_bt_api.h b/components/bt/host/bluedroid/api/include/api/esp_gap_bt_api.h index e354dcfc6d..63a99eaa08 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gap_bt_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gap_bt_api.h @@ -336,6 +336,7 @@ typedef union { struct read_rmt_name_param { esp_bt_status_t stat; /*!< read Remote Name status */ uint8_t rmt_name[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; /*!< Remote device name */ + esp_bd_addr_t bda; /*!< remote bluetooth device address*/ } read_rmt_name; /*!< read Remote Name parameter struct */ /** diff --git a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_bt.c b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_bt.c index 06d3c8c35d..872aaf7129 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_bt.c +++ b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_bt.c @@ -743,6 +743,7 @@ static void btc_gap_bt_read_remote_name_cmpl_callback(void *p_data) msg.pid = BTC_PID_GAP_BT; msg.act = BTC_GAP_BT_READ_REMOTE_NAME_EVT; + memcpy(param.read_rmt_name.bda,result->bd_addr,BD_ADDR_LEN); param.read_rmt_name.stat = btc_btm_status_to_esp_status(result->status); memcpy(param.read_rmt_name.rmt_name,result->remote_bd_name,ESP_BT_GAP_MAX_BDNAME_LEN); diff --git a/components/bt/host/bluedroid/stack/btm/btm_inq.c b/components/bt/host/bluedroid/stack/btm/btm_inq.c index 3a295c558e..fd32d5f9e9 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_inq.c +++ b/components/bt/host/bluedroid/stack/btm/btm_inq.c @@ -2306,6 +2306,7 @@ void btm_process_remote_name (BD_ADDR bda, BD_NAME bdn, UINT16 evt_len, UINT8 hc rem_name.length = 0; rem_name.remote_bd_name[0] = 0; } + memcpy(rem_name.bd_addr, p_inq->remname_bda, BD_ADDR_LEN); /* Reset the remote BAD to zero and call callback if possible */ memset(p_inq->remname_bda, 0, BD_ADDR_LEN);