本文主要是介绍QCC300x笔记(8) -- 从一个客户需求说说传统蓝牙的PBAP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
哈喽大家好,这是该系列博文的第八篇~ 篇~
<<【系列博文索引】快速通道 >>
写在前面:客户提出一个新需求,来电时根据号码获取联系人名称,显示在UI上;
1、首先从协议文档中查找,有关的只有VCardList和VCardEntry,协议中有一张图,vCardList的内容中包含了name,如下图:
2、在QCC3007的sink工程中查找到有关UE事件:
EventUsrPbapBrowseList
EventUsrPbapBrowseListByName
3、通过这两个事件可以设置通过号码查找和通过联系人名称查找,如下图:
总结一下设置流程:
1、首先设置setphonebook,设置command,然后设置搜索方式和字符串内容,如图:
2、然后成功后,会在handlePbapMessages处理函数中上报PBAPC_SET_PHONEBOOK_CFM事件,然后进入对应的处理handlePbapSetPhonebookCfm();
3、因为前面设置了command,所以会发送PBAPC_APP_PULL_VCARD_LIST事件;
4、这个时候会在handlePbapMessages处理函数中进入PBAPC_APP_PULL_VCARD_LIST事件,然后进入对应的处理handleAppPullVcardList(),如图,这个时候会给vCardList结构体赋值,然后调用PbcpcPullVcardListingRequest();
5、成功后,会在handlePbapMessages处理函数中上报PBAPC_PULL_VCARD_LISTING_CFM事件,然后进入对应的处理handlePullVCardListCfm(),在这里会打印出VCardList格式的字符串,其中的name就是我们需要的,如图:
The pb data is: <?xml version="1.0"?><!DOCTYPE vcard-listing SYSTEM "vcard-listing.dtd"><vCard-listing version="1.0"><card handle="67.vcf" name="shuaiqi"/></vCard-listing>
Requesting complete.
6、通过如下方法,获取我们需要的字符段;如图
这篇关于QCC300x笔记(8) -- 从一个客户需求说说传统蓝牙的PBAP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!