跳到主要内容

经典蓝牙-HFP免提通话模块

📋 模块概述

HFP(Hands-Free Profile)免提通话模块提供蓝牙免提电话功能,支持呼叫控制、麦克风音频传输等。

核心类: android.znhaas.bluetooth.BluetoothHfpManager

连接管理: android.znhaas.bluetooth.BluetoothHfpConnection

🎯 主要功能

  • ✅ HFP设备连接/断开
  • ✅ 呼叫控制(接听/挂断/拨号)
  • ✅ 麦克风音频数据传输
  • ✅ 免提模式切换
  • ✅ 连接状态监听

📚 核心API

1. 初始化

val hfpManager = BluetoothHfpManager(context)
hfpManager.initialize()

2. 连接HFP设备

val device = BluetoothDeviceInfo(
address = "AA:BB:CC:DD:EE:FF",
name = "Bluetooth Headset",
deviceType = DeviceType.AUDIO_HEADSET
)

hfpManager.connectHfpDevice(device)

3. 通话控制

// 接听电话
hfpManager.answerCall(deviceAddress)

// 挂断电话
hfpManager.hangupCall(deviceAddress)

// 拨打电话
hfpManager.dialNumber(deviceAddress, phoneNumber)

4. 连接状态监听

hfpManager.setConnectionListener { address, state ->
when (state) {
BluetoothProfile.STATE_CONNECTED -> {
Log.d(TAG, "HFP已连接")
}
BluetoothProfile.STATE_DISCONNECTED -> {
Log.d(TAG, "HFP已断开")
}
}
}

⚠️ 注意事项

权限要求

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

🔗 相关资源

  • 源码: app/src/main/java/android/znhaas/bluetooth/BluetoothHfpManager.kt
  • 电话工具: android.znhaas.util.PhoneCallUtil