内容简介
本文介绍在QCC512x的sink工程下,如何获取对方设备的蓝牙设备名称。
测试工具
MDE:MDE_WIN_2.3.2.126
Toolkit:NULL
QACT:NULL
Hardware:QCC5127
Software:ADK_QCC512X_ROM_V21_WIN_6.4.2.21,sink
代码修改
在默认sink工程的main.c中依次添加以下代码。
找一个连接建立后触发读取事件的地方,比如在handleUEMessage函数的HFP_SLC_CONNECT_CFM事件处添加获取代码:
#ifdefTEST_READ_REMOTE_NAME
ConnectionReadRemoteName(&theSink.task, &(conncfm->bd_addr));
#endif
ConnectionReadRemoteName函数执行后,在获取到remote端的name后,会有一个CL_DM_REMOTE_NAME_COMPLETE事件被触发。
所以在handleCLMessage函数中添加该事件的处理函数,这里主要就打印一下获取到的设备名称:
#ifdefTEST_READ_REMOTE_NAME
case CL_DM_REMOTE_NAME_COMPLETE:
PRINT(("=================>CL_DM_REMOTE_NAME_COMPLETE "));
PRINT(("=================>remotename = "));
for(uint8 i = 0;i<((CL_DM_REMOTE_NAME_COMPLETE_T *)message)->size_remote_name; i++)
{
PRINT(("%c",((CL_DM_REMOTE_NAME_COMPLETE_T*)message)->remote_name[i]));
}
PRINT((" "));
break;
#endif
最后记得打开宏定义TEST_READ_REMOTE_NAME,然后测试。
测试结果:
测试完毕。
总结:从测试过程看很简单,其实就是一个接口函数ConnectionReadRemoteName的调用,获取到对方设备名称数据后,底层直接上报一个CL_DM_REMOTE_NAME_COMPLETE,从这个事件传入的消息中就包含了设备名称信息。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !