问题标签 [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 回答
1793 浏览

android - 在 Android 上以编程方式通过 Hands Free Profile 连接到蓝牙设备

我们有一个 Bluegiga 蓝牙模块,它被设置为免提设备。初始配对后,我需要我的应用程序以编程方式通过 HFP 启动与它的连接。这可以在Android中实现吗?

0 投票
0 回答
143 浏览

java - 以编程方式访问蓝牙电话操作和设置,C#

我需要通过 ac# 应用程序访问 Windows7 中提供的蓝牙电话操作和设置服务。我想实现完全相同的功能,例如连接、断开、呼叫、拒绝/接收、将计算机用作耳机/免提电话等。

我对这些服务(BT、HFP、HSP)了解不多。因此,对于概念的任何帮助将不胜感激。

PS:我想完成这个.Net(C#),但Java也很好!

0 投票
0 回答
395 浏览

android - 蓝牙:从 Android 设备向耳机发送 AT 推荐

我已经通过 HFP 配置文件在蓝牙耳机和 Android 手机之间建立了连接。

现在我想向 HeadSet 设备发送 AT 命令。

我在 HFP 连接时使用了以下组件。

IBluetoothHeadset.aidl

ACL 的广播接收器

我没有使用任何createRfcommSocketToServiceRecord套接字连接。

以下功能有什么作用?

0 投票
1 回答
533 浏览

android - 强制 Android 应用程序对一段代码使用旧 API

几天来,我一直在尝试找出一种方法,在使用较新 API 构建的应用程序中使用以前的 Android API 实现方法。

具体来说,我正在使用startBluetoothSco()通过蓝牙 SCO 通道发起虚拟呼叫。在 API 17 中,这可以完美运行,但是,在 API 18 及更高版本中,会startBluetoothSco()打开原始 SCO 通道而不是虚拟调用(如开发人员文档中所述:http: //developer.android.com/reference/android/media/AudioManager. html#startBluetoothSco() )。我正在使用的附件对原始 SCO 频道没有任何作用。

在这种情况下,我不能选择使用 API 17 构建应用程序,因为其他开发人员很可能在不久的将来需要更高版本的 API 的功能。

我确实认为我可以将蓝牙代码包装在一个库项目中,使用 API 17 构建它,然后将其集成到主应用程序中,然后在 API 18 中构建它。不幸的是,这不起作用;操作系统似乎看到了startBluetoothSco()从使用 API 18 构建的应用程序调用的事实,因此使用了该方法的 API 18 实现。

如果有人可以建议我可以强制 API 18 应用程序使用 API 17 实现的任何方式,我将不胜感激。

谢谢

0 投票
2 回答
7202 浏览

iphone - 带有 linux 和 iphone 5 的 HFP 配置文件

如何在带有 iphone 5s 的 ubuntu linux 上使用 hfp?我安装了蓝牙、所有 bluez 包和 ofono。

对于ofono,我需要一个调制解调器。根据我从蓝牙核心、协议和配置文件规范的理解,蓝牙的 rfcomm 和 spp 可用于模拟调制解调器。这如何与 bluez 一起使用?bluetoothd 和 ofonod dbus-services 是否已经处理到 hfp 的传入连接,我是否必须编写自己的侦听器?

编辑:

程序正在运行。我根据测试脚本实现了它。但是我遇到了音频问题,因为我在打电话时没有任何声音。声音没有静音。

pa日志(翻译):

9 月 26 日 13:57:47 ubu2 pulseaudio[2524]: [alsa-sink-Intel ICH] alsa-sink.c: ALSA 唤醒我们在设备上写入新数据,但没有什么可写的!
9 月 26 日 13:57:47 ubu2 pulseaudio[2524]:[alsa-sink-Intel ICH] alsa-sink.c:这很可能是 ALSA 驱动程序“snd_intel8x0”的错误。请将此错误发送给 ALSA 开发人员。
9 月 26 日 13:57:47 ubu2 pulseaudio[2524]: [alsa-sink-Intel ICH] alsa-sink.c: 我们已被 POLLOUT-Set 唤醒,但随后的 snd_pcm_avail() 调用返回值 0或另一个小于 min_avail 的值。

如何查看 ALSA 是否遇到了一些错误?我没有找到日志。

当连接 a2dp-Profile 以使我的计算机成为 iPhone 的扬声器时,我也没有声音。

编辑2:

要解决此错误,建议这样做:
文件:/etc/pulse/default.pa
添加tsched=0到以下行:
load-module module-detect
来自帖子 #21 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/374002

但这并不能解决我的问题。我也尝试强制加载模块。

0 投票
1 回答
1260 浏览

iphone - 在 iPhone 和蓝牙设备之间使用蓝牙 HFP 的 Push-To-Talk (PTT) 应用程序

我们在 iPhone 商店中找到了 PTT 应用程序。现在我想为自己做一个。在过去的 1 周里,我一直在阅读这里所有关于如何在编码中实现这一点的帖子。比方说,我们将 BTdevice 与 iPhone 配对(BTdevice 支持 HFP 和 A2DP)。

  1. 当我们按下 BTdevice 上的按钮向 iPhone 拨打电话时,在我们的 iPhone 应用程序中,我们希望识别此 EVENT 或应用程序中的数据,然后将音频路由到 iPhone 扬声器。
  2. 当 BTdevice 上的按钮松开时,用户按下 iPhone 上的屏幕按钮与 BTdevice 通话。音频应路由到 BTdevice 扬声器。

请通过一些程序在编码中实现这一点。如果可用,还有库、类和示例。

我知道这个应用程序可以在没有苹果的 MFi NDA 的情况下实现,因为 HFP 和 A2DP 在 Apple 中是开放的(我知道可用的文档是有限的)。

我发现以下帖子完全解决了我正在尝试的问题。请看一下。

带蓝牙耳机的对讲机

0 投票
3 回答
6218 浏览

android - Android 通过 AT 命令与 HFP 设备通信

我试图通过 Android 中的 HFP(免提配置文件)控制具有振动功能的蓝牙手环。我已经能够连接到手环并访问输入和输出流。

我的目标是模拟来电,使蓝牙手环开始振动(这似乎是唯一的方法)。为此,我使用 AT 命令。在第 22 页https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=238193的蓝牙规范中,您可以看到建立服务级别连接的握手。我需要建立此连接以使用“+CIEV”命令(请参阅第 48 页的握手)。

但是当我的手环返回命令“AT+CIND=?”时 我不知道该如何回应。我找不到有关如何使用“CIND:”命令回答的任何提示。另外我不知道如何发送确认(只是“OK”吗?)。

这甚至可能是完全错误的方法。每一个建议都值得赞赏。我只在 stackoverflow 上找到了一篇某种程度上对我有帮助的帖子,我发现的其他帖子都没有得到答复。顺便说一句,我使用的是安卓 4.1.2 的智能手机。手环支持HFP和HSP。提前致谢。

2014 年 10 月 29 日更新

服务级别连接程序

=====此时通过RFCOMM Socket建立连接=====

按照协议的程序,我应该会收到“AT+CIND?” 命令,然后我可以发送命令“+CIND:5,5,1,0,0,0,0”,但是......我没有收到“AT+CIND?” 命令。实际上我没有收到任何东西。我错过了什么吗?顺便说一句,发送“OK”不会改变任何事情......

0 投票
1 回答
12251 浏览

bluetooth - HFP 1.6 和 HFP 1.5 的区别?

有人可以帮助了解 HFP 1.6 和 HFP 1.5 之间的区别吗?任何链接或可用文件?

0 投票
0 回答
355 浏览

android - 使用 Handsfree 在自己的 android 设备上模拟来电

我想创建一个应用程序,它将根据一些应用程序事件模拟免提设备上的来电。我发现主要有两种方法。第一种方法用于创建 RFCOMM 并通过 AT 命令与 HFP 通信。不幸的是,我花了很多时间使用这种方法,但没有成功。我能够建立 RFCOMM 但无法接收任何 AT 命令。现在,我正在考虑使用第二种方法。如果我能够模拟来电,它将自动开始振动免提。你不知道,如果有可能做到这一点?大概是为了广播意图,那个电话接听电话?

0 投票
1 回答
1430 浏览

android - kitkat 上的 hfp 客户端角色实现

要求是在 android 设备上具有 hfp 客户端角色。所以我们向后移植了 Lollopop 版本中可用的 hfp 客户端角色实现。除了音频变化,一切都很顺利。

现在我面临一个问题,我无法拨打/接听电话到其他电话(设备作为 HFP 客户端,任何智能手机作为 AG)。我遇到了呼叫没有正确结束的情况。

我在这里列出了我所有的观察结果-

  1. 如果电话(充当 AG)是果冻豆,则拨打/接听电话不成问题。

  2. 如果电话(充当 AG)是 kitkat,则拨打/接听电话不会顺利进行(例如在拨号时,hfp 客户端设备不会收到 CALL_STATE_DIALING,而是会收到 CALL_STATE_ALERTING。虽然通常会建立通话,但从设备结束通话不会顺利)。奇怪的是,如果用户断开 AG 电话并重新连接。接收/拨打号码开始正常。

  3. 如果电话(充当 AG)是棒棒糖,则拨打/接听电话的行为类似于 #2 中的说明,但是这次断开/连接对行为没有任何影响。

如果您需要有关此问题的更多信息,请告诉我。

注意 -这是拨号情况,记录日志直到呼叫被接受。不同之处在于我在非工作场景中没有得到 android.bluetooth.headsetclient.profile.action.AG_CALL_CHANGED State: 2(CALL_STATE_DIALING)

编辑: 刚刚注意到 JellyBean 之所以有效,是因为它是 bluez,问题在于具有 bluedroid 堆栈的 sdk。有人可以分享一些可以提供帮助的指针。问题仍然存在。我们没有得到拨号、接受和终止的确认。

不工作案例日志