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、通过如下方法,获取我们需要的字符段;如图

猜你喜欢

转载自blog.csdn.net/zhanghuaishu0/article/details/84874490
今日推荐