如何使用 bluez 在 linux 上实现 HFP?

Posted

技术标签:

【中文标题】如何使用 bluez 在 linux 上实现 HFP?【英文标题】:How to implement HFP on linux with bluez? 【发布时间】:2021-07-04 07:55:13 【问题描述】:

我想在 Linux 上实现 HFP。 据我了解,我需要先在手机和计算机之间创建 SPP 连接才能交换一些设置。在 BT 规范中,有一个 spp 服务。这是我需要的还是我必须使用dbus?我可以使用串行通信发送 AT 命令吗? 我在互联网上阅读了很多东西和 git 的源代码,但不知道如何解决 spp 的问题。

【问题讨论】:

我使用 c++,所以 python 源代码没那么有用。 【参考方案1】:

Linux 中的 HFP 作为 oFono 的一部分实现。您可以参考 ofono 代码。 SPP 和 HFP 用例不同。

安装ofono后,您可以将移动设备连接到Linux机器,然后您可以使用以下命令从您的手机拨打电话。

dbus-send --system --print-reply --dest=org.ofono /hfp/org/bluez/hci0/dev_05_BA_8D_DF_B7_9C org.ofono.VoiceCallManager.Dial string:"1234567890" string:"default"

【讨论】:

通话(ATD)和通话挂断(AT+CHUP)等AT指令可以参考ono代码ono-1.24\drivers\atmodem\voicecall.c 您好,谢谢您的回答。过了一会儿,我想通了。无法从 c++ 级别轻松控制 hfp 很复杂。我将 c++ 与 bash 脚本结合起来并让它工作。我于 2021 年 5 月关闭了该项目

以上是关于如何使用 bluez 在 linux 上实现 HFP?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上实现 RPC 客户端

Linux BlueZ dbus 通信

如何在Linux上实现:Eureka服务的开机自启动?

gcc 如何在 linux 上实现 C++ 异常的堆栈展开?

使用 Python 在 Linux 上实现一键回归测试

使用 Python 在 Linux 上实现一键回归测试