问题标签 [hfp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1192 浏览

android - 带有 SIP/VoIP 的 Android 应用程序的蓝牙 HFP 支持

我正在尝试向我的 android 应用程序添加对耳机/耳机/汽车音响等蓝牙设备的支持,该应用程序允许用户拨打 SIP/VoIP 电话。我试图主要解决使用蓝牙耳机上的按钮接听和结束通话的要求,其他按钮/功能处理很好。

通过我所做的搜索以及到目前为止我阅读的所有文本,我遇到了以下内容 -

  • 到处都建议的一种常见方法是注册到ACTION_AUDIO_STATE_CHANGED. 但这并没有真正帮助我。每次按下蓝牙耳机上的按钮时都会发送它的意图,并且当我们启动蓝牙耳机上的铃声时。
  • 我发现一个非常常见的解决方案是使用蓝牙适配器类。你无能为力。所以再次没有帮助。
  • 我遇到的另一种方法是使用供应商特定的耳机事件。经过一些努力,我能够为特定的 Plantronics 蓝牙耳机使用此功能。支持 Jabra 很重要。
  • 我遇到的另一种方法是与 IBluetoothHeadsetPhone.aidl 绑定,电话应用程序就是这样做的。我可以找到很少的信息,不足以继续实施任何事情。

如果有人做过这样的事情,我认为我面临的问题并不少见,我只是相信它没有得到很好的记录。任何指针、方法、链接将不胜感激。

当我找到我尝试的任何或任何其他方法时,我将尝试添加更多信息。如果您需要更多关于我尝试过的解决方案的信息,请询问详细信息。请提出更改建议,而不仅仅是标记问题。谢谢你的建议。

0 投票
1 回答
1490 浏览

android - 如何在 iPhone/Android 上查找 HFP、PBAP 的蓝牙配置文件版本

我正在为我的汽车主机生成报告,其中引用了所有手机蓝牙配置文件,例如适用于 iphone 5 的 HFP 1.6

有没有办法找出 iPhone 7 和所有其他版本的 iphone 和 Android 设备支持的 HFP 版本

例子 :

iPhone 7/型号 - MN9V2LL/A 有蓝牙 4.2 版本,它的 HFP、PBAP、A2DP、AVRCP 和 MAP 版本是什么?

0 投票
0 回答
1469 浏览

android - 无法让蓝牙 SCO 连接在 android 上工作

所以我目前正在开发一个实现 HFP 配置文件以供以后与 gui 一起使用的 android 服务,我能够成功且轻松地实现发送 AT 命令(如 ATA(accep 调用))的 RFCOMM 部分,但我坚持接受应用程序上的音频 SCO 连接。所以基本上我使用 Iphone AG Role 和运行我的应用程序的 android 平板电脑 HF Role 进行测试,打开 SCO 连接我尝试调用 AudioMAnager.startBluetoothSco(); 没有任何运气,甚至使用 ndk 在 C 中制作了一个蓝牙 SCO 套接字服务器,它监听连接。但实际问题是 Iphone 似乎没有尝试连接 sco 套接字,所以我从 android 平板电脑中转储了流量,并看到当 Iphone 请求 SCO 连接时,android hci 会自动响应 Reject of reason:Connection Rejected due to Limited Resources (0x0d) ,无论我做什么,也许我错过了什么?有任何想法吗?谢谢。忘了提到这两个设备是使用 os 设置应用程序配对的,并且连接是通过从 ios 的本机设置应用程序连接到 android 平板电脑建立的。

音频处理程序.java

libsco.c

}

一切运行都没有错误,我可以看到“LIstening for SCO Connection”行,但它从不接受,因为 android hci 在任何事情都可以完成之前拒绝连接...... 来自 wireshark 的截图

0 投票
0 回答
487 浏览

android - 如何让 VOIP 应用程序像本地通话应用程序一样使用 carkit?

我一直在寻找一个多星期的时间,但没有明确的解决方案。

我们正在构建一个可以拨打 VOIP 电话的应用程序。当前的实现使用 AudioManager.requestAudioFocus 通过蓝牙耳机或车载电话进行语音呼叫,并且可以使用 AudioManager 状态在按下耳机上的接受/挂断按钮时接受来电或挂断正在进行的呼叫。这一切都很好。

但是,当与同时具有接受和挂断按钮的 carkit 连接时,当前实现在按下 carkit 上的接受按钮以进行传入 voip 呼叫时不执行任何操作,并在按下拒绝按钮时接受呼叫。Carkit 显示屏也显示没有来电。

我想让 carkit 对我们的 voip 应用程序的反应与它对传入的本地呼叫的反应相同,但我找不到任何地方如何做到这一点。根据我的发现,我相信我需要在手机端实现蓝牙 HFP 服务器,并为此使用反射来访问隐藏的 Android API。

谁能给我举个例子来说明如何做到这一点?我能找到的所有实现都已经做了我们所做的甚至更少(我查看了 Signal 代码)。

0 投票
0 回答
306 浏览

ios - 当BT设备只有一个扬声器时,如何使用PlayAndRecord在AVAudioSession中保持蓝牙设备的输出?

我创建了一个带有AVAudioSessionCategoryPlayAndRecordAVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryAllowBluetooth作为选项的 AVAudioSession。只要连接了带有扬声器和麦克风的设备,一切都很好。声音从外部扬声器发出,输入通过外部麦克风录制。但是当我连接蓝牙扬声器(即 Bose SoundLink)时,输出会切换到 iPhone 扬声器。

对我来说奇怪的是,蓝牙扬声器列在[[AVSession sharedInstance] availableInputs]

使用AVAudioSessionCategoryAllowBluetoothA2DP不是一个选项,因为它总是使用 iPhone-BuiltIn-Microphone。

我发现 Bose SoundLink 报告了一个麦克风输入,虽然它没有内置麦克风,但它提供了连接外部麦克风的可能性。因此,它不是一个完美的测试设备。

无论如何,我的问题仍然是找出新连接的设备是仅扬声器还是具有内置麦克风。

0 投票
1 回答
358 浏览

bluetooth - 为什么我无法连接到设备上的免提服务?

我使用 Tizen 蓝牙 API 通过蓝牙将我的 gear s2 手表(tizen 2.3.2)连接到我的三星 Galaxy s3(android 4.3)。据我了解,使用手机的 MAC 地址,我能够“发现”16 个不同的 UUID,包括 0000111F-0000-1000-8000-00805F9B34FB,即 HFP 服务的 UUID。但是当我尝试连接到该服务时,我没有收到任何响应,无论是successCallback 还是errorCallback。有趣的是,对串口 UUID(1101)做同样的事情,当我的手机接到电话或短信时,我可以连接到服务,甚至可以通过套接字获取消息,没问题。那么,为什么我在尝试连接免提服务(UUID 111F)时没有得到响应?
这是我正在使用的代码:

运行此代码后,我的日志文件如下所示:

就是这样......我希望/希望在通过successCallback成功连接时看到“连接到服务UUID = 0000111F-0000-1000-8000-00805F9B34FB”..或者至少通过写入日志的类似错误errorCallback,但我都没有。然而,免提服务似乎正在手机上运行。当然,当手机在我的车里时,免提功能可以正常工作,所以我知道手机支持它。我哪里错了?

更新:经过几次测试,我有了一些额外的线索。我有两台设备:iPhone S5 (iOS 11.2.6) 和 Galaxy S3 (android 4.3)。在“发现”并连接到每个服务之后,我能够遍历服务(uuid)。0x111F 在两者上。这两种设备还有其他几个共同的 uuid。我尝试在两台设备上连接到所有这些常用服务。相对于这两个设备的结果是相同的——在这两个设备上,我都能够连接到一些服务,在其他设备上出现 NotFound 错误,而在我真正感兴趣的设备上,我根本没有收到任何回调。所以,请允许我完善我的问题。我能够连接到我的两台设备共有的以下服务:110A [A2DP]、110C [AVRCP]、112F [PBAP]、1132[MAP]

但是,即使 UUID 0x1200 在两个设备的可用 UUIDS 列表中,对我尝试连接到服务的响应也会调用我的 errorCallBack 例程,并出现“未找到”错误。这发生在两个设备上。为什么在有效 UUID 列表中找不到它?

最令人失望的是(无论如何,对我来说),当我尝试连接到免提配置文件服务 0x111F 时,我仍然没有得到任何响应(没有成功回调和错误回调)。为什么我不会得到响应——成功回调或错误回调?

0 投票
0 回答
142 浏览

android - 是否可以通过 BLE 发送 AT 命令?

当我的 Android 手机通过 BLE 连接到支持蓝牙的设备时,我想接听、结束和拒绝来电。我知道这可以通过通过 HFP 发送 AT 命令来实现。

是否也可以通过 BLE 发送 AT 命令?

0 投票
1 回答
847 浏览

android - 当我们有一个活动的(HFP)蓝牙 SCO 连接时,强制 Android A2DP 配置文件工作

因为我们可以连接两个具有不同连接类型的蓝牙设备电话音频和音乐音频(即分别为 HFP 配置文件和 A2DP 配置文件)。两个设备同时连接,但 HPF 优先于 A2DP,这意味着当我有活动的 SCO 连接(或语音呼叫)时,A2DP 停止工作。我希望他们两个同时工作。我想从 HFP 设备获取音频并在 A2DP 设备上播放。如果可能的话,想知道一些解决方法,即使需要编写 NDK 代码。

0 投票
1 回答
393 浏览

qt - Qt蓝牙AVRCP实现

我正在开发 Qt 项目,并且我使用“HandsfreeAudioGateway”成功实现了蓝牙连接,因此我可以流式传输音频。

作为下一步,我想实现 AVRCP 以通过蓝牙控制音频播放器。

看起来 Qt 还不支持 AVRCP。另一方面,BlueZ 有 mediaAPI,我不知道如何在 Qt 中使用它。

如果你能告诉我一个方法或一个例子来解决它,将不胜感激。

干杯!

0 投票
1 回答
2291 浏览

linux - Pulseaudio 为 A2DP 和 HFP 连接设置接收器和源

我正在尝试在嵌入式板上设置 A2DP+HFP 配置文件。目标是使用 pulseaudio 12.2、ofono 1.18 和 bluez 5.41 以便连接到手机并在必要时自动使用 A2DP、HFP 配置文件。我做了很多很多事情来更新版本和配置守护进程。现在我可以看到 HFP 配置文件在连接时可用。

A2DP 完美运行,我能够将音乐从手机传输到嵌入式板。当我接到电话时,我可以用蓝牙接听电话,而且看起来 HFP 是我在通话中的活动配置文件。奇怪的是嵌入式板(连接到它的 HDMI 监视器)没有音频。

下面将为您介绍它的外观。当我通过 A2DP 从手机流式传输音乐时,我得到以下来源和接收器:

每当我在通话中(使用 HFP)时,我都会得到以下来源和接收器:

这很奇怪,因为只要我在通话中,接收器就会从我的 HDMI 显示器变为蓝牙设备本身。请在/etc/pulse/default.pa下面找到我的:

以下是我的.asoundrcALSA 配置(默认为 HDMI 设备):

非常感谢任何帮助。提前致谢。