# 高级音频分发配置文件

Source: [https://docs.qualcomm.com/doc/80-70017-13SC/topic/set-up-a2dp.html](https://docs.qualcomm.com/doc/80-70017-13SC/topic/set-up-a2dp.html)

A2DP 定义了如何通过蓝牙连接将多媒体音频从一台设备传输至另一台设备。这种机制也称为蓝牙音频流。

要执行 A2DP 源或接收端功能，必须首先完成以下过程中的步骤。

## 设置设备的 A2DP 功能

**前提条件**

- 启用 SSH 以访问您的主机设备。相关说明，可参见[使用 SSH 登录](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh)。
- 根据需要在设备上 [发送端](https://docs.qualcomm.com/doc/80-70017-13SC/topic/set-up-a2dp.html#set-up-a2dp__section_nbc_4cz_kcc_navyanka_08-18-24-2135-3-71)或[接收端](https://docs.qualcomm.com/doc/80-70017-13SC/topic/set-up-a2dp.html#set-up-a2dp__section_ilx_4cz_kcc_navyanka_08-18-24-2135-17-523)。
- 将 DUT 和远程设备放置在蓝牙附近。

**步骤**

1. 在命令提示符下使用以下命令运行 SSH： 

        ssh root@<device_IP_address>Copy to clipboard

    **示例**

如果设备的 IP 地址为 `10.92.160.222`，则运行以下命令：

        ssh root@10.92.160.222Copy to clipboard
2. 输入以下密码来连接 SSH： 

        oelinux123Copy to clipboard
3. 通过运行以下命令打开蓝牙测试应用程序： 

        btappCopy to clipboard

    **示例输出**

sh-5.1# btapp
         get_ap_interface
        :: get_ap_interface
        
        ***************** Menu *******************
                 gap_menu
                 test_menu
                 a2dp_sink_menu
                 hfp_client_menu
                 gattctest_menu
                 gattstest_menu
                 hogp_menu
                 hfp_ag_menu
                 a2dp_source_menu
                 spp_client_menu
                 spp_server_menu
                 eslap_menu
                 exit
         ******************************************Copy to clipboard
4. 启用蓝牙并按如下方式配对设备：
    1. 运行以下命令转至 Gap Menu： 

            gap_menuCopy to clipboard
    2. 运行以下命令，启用蓝牙： 

            enableCopy to clipboard

        **示例输出**

gap_menu
            
            ***************** Menu *******************
                     enable
                     disable
                     inquiry
                     cancel_inquiry
                     get_role_req<space><bt_address>     eg. get_role_req 00:11:22:33:44:55
                     pair<space><bt_address><space><transport>     eg. pair 00:11:22:33:44:55 0(auto)/1(BREDR)/2(BLE)
                     unpair<space><bt_address>     eg. unpair 00:11:22:33:44:55
                     inquiry_list
                     bonded_list
                     get_state
                     get_bt_name
                     get_bt_address
                     set_bt_name<space><bt name>     eg. set_bt_name MDM_Fluoride
                     set_scan_mode<space><scan mode value (range 0-2)>     eg. set_scan_mode 0 --0-BT_SCAN_MODE_NONE,1- BT_SCAN_MODE_CONNECTABLE,2-BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE
                     set_afh<space><AFH_Host_Channel_Classification>     eg. set_afh 112233445566778899f0
                     send_hci_cmd<space><hci_cmd>     eg. send_hci_cmd 01,04,05,33,8b,9e,0a,00 - For Inquiry
                     read_clock<space><which_clock range(0-1)><space><bt_address>     eg. read_clock 0(local)/1(acl connection) 00:11:22:33:44:55
                     main_menu
                     switch_role_req<bt_address><space><new_role>     eg. switch_role_req 00:11:22:33:44:55 0 or get_role_req 00:11:22:33:44:55 1
             ******************************************
            enable
             current State = 0, new state = 1
             BT State is ONCopy to clipboard
    3. 通过运行以下命令来配对设备： 

            pair <bt_address> <transport>Copy to clipboard

        要接受主动/被动配对，输入 `yes`。

        **参数**

        - 采用[运行蓝牙查询扫描](https://docs.qualcomm.com/doc/80-70017-13SC/topic/gap_commands.html#gap_commands__section_iy1_xnf_41c)获取远程设备的 `<bt_address>`。
        - `<transport>`参数的值可以是：
            - `0`：自动选择
            - `1`：BR/EDR
            - `2`：蓝牙低功耗

        **示例**

要启动 `<bt_address>` `98:09:cf:a9:82:23` 的 BR/EDR 配对，请运行以下命令：

            pair 98:09:cf:a9:82:23 1Copy to clipboard

        **示例输出**

pair 98:09:cf:a9:82:23 1 
             BR/EDR Bonding
             ACL state:0 change with reason 00 for device: f8:7d:76:9d:9b:6b
            ************************************************
             Pairing state for MyDeviceA is BOND NONE
            ************************************************
             BT pairing request :: MyDeviceB :: Pairing Code :: 776996
            ************************************************
            **Please enter yes / no **
            yes
            ************************************************
             Pairing state for MyDeviceB is BONDED
            ************************************************Copy to clipboard
    4. 通过运行以下命令返回到 Main Menu： 

            main_menuCopy to clipboard
5. 根据需要转至 A2DP 发送端或接收端菜单。
    - 请从 `main_menu` 运行以下命令，以便转到 A2DP Source Menu：

            a2dp_source_menuCopy to clipboard

        **示例输出**

main_menu
            
            ***************** Menu *******************
                     gap_menu
                     test_menu
                     a2dp_sink_menu
                     hfp_client_menu
                     gattctest_menu
                     gattstest_menu
                     hogp_menu
                     hfp_ag_menu
                     a2dp_source_menu
                     spp_client_menu
                     spp_server_menu
                     eslap_menu
                     exit
             ******************************************
            a2dp_source_menu
            
            ***************** Menu *******************
                     connect<space><bt_address>
                     disconnect<space><bt_address>
                     codec_list<space><codec1,param1,param2....,codec2,param1,param2....>
                     avrcp_trackchange
                     avrcp_now_playing_content_changed
                     avrcp_setabsolutevol<space><volstep>  eg: setabsolutevol 10 (range 0-15)
                     avrcp_sendvolupdown<space><1/0>  eg: sendvolupdown 1 (1-up, 0-down)
                     avrcp_availplayerchange
                     avrcp_biggermetadata info:enables bigger avrcp metadata
                     avrcp_setequalizerval<space><val> (1/2)
                     avrcp_setrepeatval<space><val> (1 to 4)
                     avrcp_setshuffleval<space><val>(1 to 3)
                     avrcp_setscanval<space><val> (1 to 3)
                     set_scmst_cp_flag<space><bd_addr><space><0-2> (0-Copyrighted 1-Only Once 2-Content not protected)
                     main_menu
             ******************************************Copy to clipboard

        关于 A2DP 发送端菜单功能，请参阅[执行蓝牙 A2DP 发送功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform-a2dp-source-functions.html)。
    - 请从 `main_menu` 运行以下命令，以便转到 A2DP Sink Menu：

            a2dp_sink_menuCopy to clipboard

        **示例输出**

main_menu
            
            ***************** Menu *******************
                     gap_menu
                     test_menu
                     a2dp_sink_menu
                     hfp_client_menu
                     gattctest_menu
                     gattstest_menu
                     hogp_menu
                     hfp_ag_menu
                     a2dp_source_menu
                     spp_client_menu
                     spp_server_menu
                     eslap_menu
                     exit
             ******************************************
            a2dp_sink_menu
            
            ***************** Menu *******************
                     connect<space><bt_address>
                     disconnect<space><bt_address>
                     play<space><bt_address>
                     pause<space><bt_address>
                     stop<space><bt_address>
                     rewind<space><bt_address>
                     fastforward<space><bt_address>
                     forward<space><bt_address>
                     backward<space><bt_address>
                     power<space><bt_address>
                     volup<space><bt_address>
                     voldown<space><bt_address>
                     volchangednoti<space><vol level(0-15)>
                     mute<space><bt_address>
                     codec_list<space><codec1,param1,param2,codec2,param1,param2,....>
                     getcap<space><bt_address><space><cap_ID>
                     listplayersettingattr<space><bt_address>
                     listplayersettingvalue<space><bt_address><space><attri_ID>
                     getplayersetting<space><bt_address><space><attri_IDs>
                     setplayersetting<space><bt_address><space><attri_IDs><space><attri_Values>
                     getelementattr<space><bt_address><space><num_attrb><space><attribute_IDs>
                     getplayerstatus<space><bt_address>
                     regnotification<space><bt_address><space><event_ID>
                     setaddressedplayer<space><bt_address><space><player_ID>
                     setbrowsedplayer<space><bt_address><space><player_ID>
                     changepath<space><bt_address><space><direction><space><folder_uID>
                     getfolderitems<space><bt_address><space><scopeID><space><startItem><space><endItem><space><num_attrb><space><attrib_IDs>
                     getitemattributes<space><bt_address><space><scopeID><space><uID><space><uID_Counter><space><num_attrb><space><attrib_IDs>
                     playitem<space><bt_address><space><scopeID><space><uID><space><uID_Counter>
                     addtonowplaying<space><bt_address><space><scopeID><space><uID><space><uID_Counter>
                     search<space><bt_address><space><length><space><string>
                     main_menu
             ******************************************Copy to clipboard

        关于 A2DP 接收端菜单功能，请参阅[执行蓝牙 A2DP 接收端功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform-a2dp-sink-functions.html)。

## 启用 A2DP 发送端角色

要在设备上启用 A2DP 发送端角色，请执行以下操作：

1. 打开命令提示窗口。
2. 通过运行以下命令从设备中提取 bt\_app.conf 文件：

        scp -r root@<IP_address>:/etc/bluetooth/bt_app.conf .Copy to clipboard

    `<IP_address>` 是设备的 IP 地址。
3. 在 bt\_app.conf文件中配置以下值：
    - `BtA2dpSinkEnable=false`
    - `BtA2dpSinkSplitEnable=false`
    - `BtHfClientEnable=false`
    - `BtA2dpSourceEnable=true`
4. 保存 bt\_app.conf 文件。
5. 通过运行以下命令将 bt\_app.conf 文件推送到设备：

        scp -r bt_app.conf root@<IP_address>:/etc/bluetooth/bt_app.confCopy to clipboard

    `<IP_address>` 是设备的 IP 地址。

## 启用 A2DP 接收端角色

要在设备上启用 A2DP 接收端角色，请执行以下操作：

1. 打开命令提示窗口。
2. 通过运行以下命令从设备中提取 bt\_app.conf 文件：

        scp -r root@<IP_address>:/etc/bluetooth/bt_app.conf .Copy to clipboard

    `<IP_address>` 是设备的 IP 地址。
3. 在 bt\_app.conf文件中配置以下值：
    - `BtA2dpSinkEnable=true`
    - `BtA2dpSinkSplitEnable=true`
    - `BtHfClientEnable=true`
    - `BtA2dpSourceEnable=false`
4. 保存 bt\_app.conf 文件。
5. 通过运行以下命令将 bt\_app.conf 文件推送到设备：

        scp -r bt_app.conf root@<IP_address>:/etc/bluetooth/bt_app.confCopy to clipboard

    `<IP_address>` 是设备的 IP 地址。

- **[执行蓝牙 A2DP 发送功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform-a2dp-source-functions.html)**  

可以使用 `a2dp_source_menu` 选项执行 A2DP 发送功能。
- **[执行蓝牙 A2DP 接收端功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform-a2dp-sink-functions.html)**  

可以使用 `a2dp_sink_menu` 选项执行 A2DP 接收端功能。

**上一级主题：** [验证 Fluoride 堆栈的功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluetooth_usecases.html)

Last Published: Jan 23, 2025

[Previous Topic
GATT 配置参数](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/gatt_config_params.md) [Next Topic
执行蓝牙 A2DP 发送功能](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/perform-a2dp-source-functions.md)