读取电池状态蓝牙耳机 linux

Read battery status bluetooth headset linux

我使用的是蓝牙4.1版本的蓝牙耳机。当我连接 android 时,它会显示电池状态。但是使用 Linux (Ubuntu 18.04) 我无法获取电池状态。我试过 bluetoothctl,像其他问题一样在 /sys/class/power_supply 中查找文件,但他们没有帮助我。

askubuntu.com/questions/53880/is-there-any-way-to-check-the-battery-percentage-of-apple-wireless-peripherals

我的蓝牙设备不使用 GATT 配置文件。它使用 A2DP 接收器来传输音频。

我查看了 Bluez 文档。他们都说是用GATT profile做的,得到属性。

有没有办法在 Linux 中正确读取电池状态? android 设备如何获取电池状态?这是 Linux 蓝牙堆栈的弱点吗?

this pull request by Dmitry Sharshakov 起,PipeWire 支持报告电池状态(对于使用 Apple HFP AT 命令的设备)。它使用 bluez 的 Battery Provider API,它仍处于试验阶段,只有在 bluetoothd-E 标志启动时才可用。

在 Arch Linux 上,应该足够 运行

cp /usr/lib/systemd/system/bluetooth.service /etc/systemd/system/
sed -i -r 's/ExecStart=.+/& -E/' /etc/systemd/system/bluetooth.service
systemctl daemon-reload
systemctl restart bluetooth

并且应该会显示耳机电池电量。要以编程方式获取电池电量,您可以使用 UPower 的 DBus API.