读取电池状态蓝牙耳机 linux
Read battery status bluetooth headset linux
我使用的是蓝牙4.1版本的蓝牙耳机。当我连接 android 时,它会显示电池状态。但是使用 Linux (Ubuntu 18.04) 我无法获取电池状态。我试过 bluetoothctl
,像其他问题一样在 /sys/class/power_supply
中查找文件,但他们没有帮助我。
我的蓝牙设备不使用 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.
我使用的是蓝牙4.1版本的蓝牙耳机。当我连接 android 时,它会显示电池状态。但是使用 Linux (Ubuntu 18.04) 我无法获取电池状态。我试过 bluetoothctl
,像其他问题一样在 /sys/class/power_supply
中查找文件,但他们没有帮助我。
我的蓝牙设备不使用 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.