经典蓝牙-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