上面讲到Android JAVA层的调用,这里开始学习Bluedroid协议栈处理create_bond 的流程
system/bt/btif/src/bluetooth.cc
static int create_bond(const RawAddress* bd_addr, int transport) {
/* sanity check */
if (!interface_ready()) return BT_STATUS_NOT_READY;
return btif_dm_create_bond(bd_addr, transport);
}
system/bt/btif/src/btif_dm.cc
/*******************************************************************************
*
* Function btif_dm_create_bond
*
* Description Initiate bonding with the specified device
*
* Returns bt_status_t
*
******************************************************************************/
bt_status_t btif_dm_create_bond(const RawAddress* bd_addr, int transport) {
btif_dm_create_bond_cb_t create_bond_cb;
create_bond_cb.transport = transport;
create_bond_cb.bdaddr = *bd_addr;
这里把设备地址bd_addr和transport打包到create_bond_cb发送到
BTIF_TRACE_EVENT("%s: bd_addr=%