如何永久删除或禁用 HSP/HFP 蓝牙配置文件

如何永久删除或禁用 HSP/HFP 蓝牙配置文件

我真的不喜欢这样,就像 Skype 会自动将我的蓝牙配置文件更改为非常低质量的 HSP 配置文件,然后将高质量 A2DP 配置文件静音。

所以我想知道,是否可以删除或禁用 HSP/HFP 配置文件(脉冲音频、bluez),如果可以,该怎么做?

互联网上充满了如何启用 HSP/HFP 的教程,但就我的情况而言,这就是问题所在。

附言:我不使用蓝牙麦克风,因此让它在 A2DP 上运行无关紧要,我知道这很难运行,因此不需要在这方面做额外的工作。

答案1

看看这个答案:https://askubuntu.com/a/1119934/1025239

复制最重要的部分,这只是按照 pulseaudio 开发人员想要的方式禁用此“功能”。

打开(sudo)/etc/pulse/default.pa并添加auto_switch=false如下内容:

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy auto_switch=false  # <---- !
.endif

只需终止正在运行的实例即可重新启动 pulseaudio:pulseaudio -k。此后,您可以使用 重新启动它pulseaudio -D。完成。您仍然可以切换到 HFP 配置文件,但不再有自动切换。

答案2

我已经研究这个问题很长时间了。事实证明,大多数蓝牙麦克风都不支持 A2DP,因此 Pulse Audio 被配置为每当使用麦克风的应用程序(例如 Skype)连接时,就从 A2DP 切换到 HSP。最后,对我有用的是来自此链接的教程:https://sandalov.org/blog/2146/

  1. 修改/etc/bluetooth/audio.conf,添加以下内容:
[General]
Disable=Headset
  1. 终止 pulseaudio(它会自动重启)并重新启动蓝牙服务:
pulseaudio -k
sudo systemctl restart bluetooth

这将断开您通过蓝牙连接的音频设备,您必须重新连接它。

希望这可以帮助 :)

答案3

对我来说,解决方案如下:

# /etc/pulseaudio/default.pa
ifexists module-bluetooth-policy.so
  load-module module-bluetooth-policy auto_switch=false  <-- add auto switch
.endif

.ifexists module-bluetooth-discover.so
  load-module module-bluetooth-discover
  load-module module-switch-on-connect                   <-- add this
.endif

# /etc/bluetooth/main.conf
[General]
Disable=Headset                                          <-- add this

这将禁用从 pulseaudio 自动切换到 hsp 并明确告诉 bluez 禁用 hsp。此外,pulseaudio 将在连接时切换到蓝牙设备。

至少这是我对上述内容的理解。

答案4

要仅禁用特定设备(Ubuntu 20.04 和 22.04),请找到该设备服务的 UUID。您可以在 Blueman 中执行此操作:

blueman uuid

也可以通过跑步bluetoothctl info等方法获得。

接下来,编辑以下内容以从“常规”下的“服务”中删除 UUID。

# For Ubuntu 20.04
sudo vim /var/lib/bluetooth/{{deviceid}}/info

# For Ubuntu 22.04
sudo vim /var/lib/bluetooth/{{controller}}/{{deviceid}}/info

然后重启蓝牙

sudo systemctl restart bluetooth.service

相关内容