# 免提 Profile (Hands-Free Profile)

HFP 定义音频网关设备如何连接至免提设备以实现远程控制和音频连接等功能。

要执行 HFP 客户端或音频网关功能，您必须首先完成以下过程中的步骤。

## 设置设备的 HFP 功能

**前提条件**

- 启用 SSH 以访问您的主机设备。有关说明，请参阅[使用 SSH 登录](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#use-ssh)。
- 根据需要在设备上启用 HFP [客户端](https://docs.qualcomm.com/doc/80-70018-13SC/topic/set-up-hfp.html#section-zbs-5xd-lcc-navyanka-08-19-24-1329-1-355)或[音频网关](https://docs.qualcomm.com/doc/80-70018-13SC/topic/set-up-hfp.html#section-ycr-vxd-lcc-navyanka-08-19-24-1329-18-280)角色。
- 将 DUT 和远程设备放置在蓝牙附近。

**步骤**

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

ssh root@<device_IP_address>
        Copy to clipboard

    **示例**

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

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

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

btapp
        Copy 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_menu
            Copy to clipboard
    2. 运行以下命令，启用蓝牙：

enable
            Copy 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 ON
            Copy to clipboard
    3. 通过运行以下命令来配对设备：

pair <bt_address> <transport>
            Copy to clipboard

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

        **参数**

        - [运行蓝牙查询扫描](https://docs.qualcomm.com/doc/80-70018-13SC/topic/gap_commands.html#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 1
            Copy 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_menu
            Copy to clipboard
5. 根据需要转至 HFP 客户端或音频网关菜单。

    - 要转到 **HFP 客户端菜单**，请从 `main_menu` 运行以下命令：

hfp_client_menu
            Copy 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
               ******************************************
            hfp_client_menu
            ***************** Menu *******************
                     connect<space><bt_address>
                     disconnect<space><bt_address>
                     create_sco<space><bt_address>
                     destroy_sco<space><bt_address>
                     accept_call
                     reject_incoming_call
                     end_active_call
                     hold_active_call
                     unhold_held_call
                     reject_incoming_call_when_active_call_present
                     end_held_call
                     end_active_call_and_accept_waiting_or_held_call
                     swap_calls
                     add_held_call_to_conference
                     end_specified_active_call<space><index of the call>
                     private_consultation_mode<space><index of the call>
                     put_incoming_call_on_hold_when_no_other_call_present
                     accept_held_incoming_call_when_no_other_call_present
                     reject_held_incoming_call_when_no_other_call_present
                     dial<space><phone_number>
                     redial
                     dial_memory<space><memory_location>
                     start_voice_recognition
                     stop_voice_recognition
                     query_current_calls
                     query_operator_name
                     query_subscriber_info
                     mic_volume_control<space><value>
                     speaker_volume_control<space><value>
                     send_dtmf<space><code>
                     disable_nrec_on_AG
                     main_menu
               ******************************************
            Copy to clipboard

        有关 HFP 客户端菜单功能，请参阅[执行蓝牙 HFP 客户端功能](https://docs.qualcomm.com/doc/80-70018-13SC/topic/perform-bluetooth-hfp-client-functions.html#perform-bluetooth-hfp-client-functions)。
    - 要转到 **HFP 音频网关菜单**，请从 `main_menu` 运行以下命令：

hfp_ag_menu
            Copy 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
            *******************************************
            hfp_ag_menu
            ****************** Menu ******************
                     connect<space><bt_address>
                     disconnect<space><bt_address>
                     create_sco<space><bt_address>
                     destroy_sco<space><bt_address>
                     voip_call_ind<space><bt_address>
                     end_voip_call<space><bt_address>
                     main_menu
            ******************************************
            Copy to clipboard

        有关 HFP 音频网关菜单功能，请参阅[执行蓝牙 HFP 音频网关功能](https://docs.qualcomm.com/doc/80-70018-13SC/topic/perform-bluetooth-hfp-ag-functions.html#perform-bluetooth-hfp-ag-functions)。

## 启用 HFP 客户端角色

要在设备上启用 HFP 客户端，请执行以下操作：

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.conf
        Copy to clipboard

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

## 启用 HFP 音频网关角色

要在设备上启用 HFP 音频网关角色，请执行以下操作：

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` 文件中配置以下值：

    - `BtHfpAGEnable=true`
    - `BtA2dpSinkEnable=false`
    - `BtA2dpSinkSplitEnable=false`
    - `BtHfClientEnable=false`
4. 保存 `bt_app.conf` 文件。
5. 通过运行以下命令将 `bt_app.conf` 文件推送到设备：

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

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

**后续步骤**

- [执行蓝牙 HFP 客户端功能](https://docs.qualcomm.com/doc/80-70018-13SC/topic/perform-bluetooth-hfp-client-functions.html)
可以使用 `hfp_client_menu` 选项执行 HFP 客户端功能。
- [执行蓝牙 HFP 音频网关功能](https://docs.qualcomm.com/doc/80-70018-13SC/topic/perform-bluetooth-hfp-ag-functions.html)
可以使用 `hfp_ag_menu` 选项执行 HFP 音频网关功能。

Last Published: Apr 30, 2025

[Previous Topic
执行蓝牙 A2DP 接收端功能](https://docs.qualcomm.com/bundle/publicresource/80-70018-13SC/topics/perform-a2dp-sink-functions.md) [Next Topic
执行蓝牙 HFP 客户端功能](https://docs.qualcomm.com/bundle/publicresource/80-70018-13SC/topics/perform-bluetooth-hfp-client-functions.md)