经典蓝牙 Profile 使用

        Watch 应用中一般会使用到的经典蓝牙 profile 包括 A2DP,AVRCP,HFP,PBAP,SPP 等。上层应用 一般需要处理的电话状态,耳机播放控制命令,电话簿查询等。 各 Profile 初始化时,会注册对应的回调接口,当相关 profile 有事件返回时,通过对应的回调接口通知 上层 APP。

bt_mgr_cback_register(app_hfp_bt_cback);

bt_mgr_cback_register(app_pbap_bt_cback);

bt_mgr_cback_register(app_avrcp_bt_cback);

……

 1,HFP

static void app_hfp_bt_cback(T_BT_EVENT event_type, void *event_buf, uint16_t buf_len)

{

    switch (event_type)

     {

            case BT_EVENT_HFP_CALL_STATUS:    

            case BT_EVENT_HFP_CALLER_ID_IND:

     }

}

BT_EVENT_HFP_CALL_STATUS:通话状态上报 

typedef enum t_bt_hfp_call_status

{

    BT_HFP_CALL_IDLE                                     = 0x00,

    BT_HFP_VOICE_ACTIVATION_ONGOING                  = 0x01,

    BT_HFP_INCOMING_CALL_ONGOING                     = 0x02,

    BT_HFP_OUTGOING_CALL_ONGOING                     = 0x03,

    BT_HFP_CALL_ACTIVE                                   = 0x04,

    BT_HFP_CALL_ACTIVE_WITH_CALL_WAITING             = 0x05,

    BT_HFP_CALL_ACTIVE_WITH_CALL_HOLD                = 0x06,

    BT_HFP_MULTILINK_CALL_ACTIVE_WITH_CALL_WAIT    = 0x07,

    BT_HFP_MULTILINK_CALL_ACTIVE_WITH_CALL_HOLD    = 0x08,

} T_BT_HFP_CALL_STATUS;

BT_EVENT_HFP_CALLER_ID_IND:电话号码上报 来电时,HFP 通过该消息上报电话号码信息给上层。若要通过 PBAP 查询该电话号码对应的联系人名 称,则可以使用 bt_pbap_vcard_listing_by_number_pull 接口。 

/**

 * bt_pbap.h

*

 * \brief  Send a request to pull the vCard listing in current phonebook by phone number.

 *

 * \param[in]  bd_addr        Remote BT address.

 * \param[in]  phone_number   The start address of string buffer that stores phone number.

 *

 * \return         The status of sending pull_vCard_listing message.

 * \retval true    Request was sent successfully.

 * \retval false   Request was failed to send.

 *

 * \ingroup BT_PBAP

 */

bool bt_pbap_vcard_listing_by_number_pull(uint8_t *bd_addr, char *phone_number);

2,PBAP 

static void app_pbap_bt_cback (T_BT_EVENT event_type, void *event_buf, uint16_t buf_len)

{

    switch (event_type)

   {

        case BT_EVENT_PBAP_CALLER_ID_NAME:

   }

}

BT_EVENT_PBAP_CALLER_ID_NAME :HFP中通过bt_pbap_vcard_listing_by_number_pull查询号码后,通该消息返回结果。

另外PBAP也支持从手机电话簿中拉取联系人信息,来电信息等资料。相关接口在bt_pbap.h中有提供,可阅读相关接口注释参考。

3,AVRCP

static void app_avrcp_bt_cback (T_BT_EVENT event_type, void *event_buf, uint16_t buf_len)

{

    switch (event_type)

     {

        case BT_EVENT_AVRCP_PLAY:

        case BT_EVENT_AVRCP_PAUSE:

        case BT_EVENT_AVRCP_STOP:

        case BT_EVENT_AVRCP_FORWARD:

        case BT_EVENT_AVRCP_BACKWARD:

       }

}

 主要的播放控制命令包括上述这些,APP层可对应实现相应的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值