在 Linux 中检查蓝牙耳机电池状态

gab*_*bb3 36 battery headphones bluetooth

是否可以获取连接到 Linux 的蓝牙耳机的电池状态?Android 显示了它,所以我想知道它是否可能。

小智 63

我不确定 Ubuntu 下的状态,但在 Arch Linux 下,现在你不需要编写自己的脚本来获取蓝牙电池信息。

bluez 包对查询蓝牙耳机电池数据提供了实验性支持。只需通过编辑即可启用实验性功能

/etc/bluetooth/main.conf
Run Code Online (Sandbox Code Playgroud)

并将以下行添加到该[General]部分

Experimental = true
Run Code Online (Sandbox Code Playgroud)

然后,您只需使用以下命令重新启动蓝牙服务即可

systemctl restart bluetooth
Run Code Online (Sandbox Code Playgroud)

重新连接到您的设备,然后

bluetoothctl info
Run Code Online (Sandbox Code Playgroud)

现在还应该显示电池状态。例如

Device 28:11:A5:47:6C:6E (public)                                             
Name: Cloud Walker                                                    
Alias: Cloud Walker                                                   
Class: 0x00240418                                                            
Icon: audio-headphones                                                
Paired: yes                                                           
...                               
Battery Percentage: 0x3c (60)                                         
Run Code Online (Sandbox Code Playgroud)

danjjl 给出的使用 upower 的解决方案现在也应该可以工作。

现在电池电量百分比也应该显示在 Gnome 电源设置对话框中。

前: 在启用 bluez Experimental 选项之前,Cloud Walker 蓝牙耳机不会显示在电源设置的设备部分中

后: 启用 bluez Experimental 选项后,Cloud Walker 蓝牙耳机会显示在电源设置的设备部分

  • 它可以在 Ubuntu 22.04 下运行 (4认同)
  • 这种启用实验性功能的方法效果很好。但是,这种编辑“/etc/bluetooth/main.conf”的特定方法对我来说根本不起作用。有效的方法是编辑“/lib/systemd/system/bluetooth.service”以添加“--experimental”标志,如[文档](https://bluez-cheat-sheet.readthedocs .io/en/最新/)。干杯! (2认同)

Ali*_*S.N 12

我写了一个简单的 python 脚本来完成这项工作。它使用 AT 命令通过 RFCOMM 与设备通信,并在设备支持时打印电池电量。

https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level

(您需要 Python 3.6.0 或更高版本才能运行脚本)

它可能不适用于所有蓝牙耳机,但我在“问题”页面中提供了一些可能有帮助的解决方法。

  • 感谢您为社区所做的工作 (3认同)

dan*_*jjl 6

upower 可用于终端列出电源设备、监听设备事件以及查询历史和统计信息。

如果您的设备被列出,upower -e您可以运行upower --dump以检索设备的电池电量。

这是一个示例输出:

$ upower --dump
...
Device: /org/freedesktop/UPower/devices/mouse_dev_C1_FC_26_13_A9_58
  native-path:          /org/bluez/hci0/dev_C1_FC_26_13_A9_58
  model:                MX Anywhere 2S
  serial:               C1:FC:26:13:A9:58
  power supply:         no
  updated:              Wed 31 Dec 1969 06:00:00 PM CST (1550719462 seconds ago)
  has history:          yes
  has statistics:       no
  mouse
    present:             yes
    rechargeable:        no
    state:               unknown
    warning-level:       none
    percentage:          50%
    icon-name:          'battery-missing-symbolic'
...
Run Code Online (Sandbox Code Playgroud)

源代码

  • 它没有显示蓝牙设备,只显示交流适配器、笔记本电池和显示设备。 (16认同)

kla*_*aas 5

在 ubuntu 中,您可以简单地settings->power查看系统和连接设备的电池状态。

在此处输入图片说明

是的,我知道它是 Linux 系统上的 Microsoft 蓝牙鼠标……但是,嘿,Microsoft 现在是新的很酷的公司 ;)

这是什么: systemctl status bluetooth

在此处输入图片说明

这是什么:bluetoothctl设备显示:

在此处输入图片说明

JBL 已断开连接,而 Creative 扬声器已接通电源。因此,带有电池的结果(Keychron 和鼠标)显示在settings->power对话框中。

注意:如果upower -d不显示设备,它的功率级别可能不会在设置中显示。
// 我显示了鼠标,但没有显示耳机。

  • 似乎取决于设备。我在下面的 gnome.org gitlab issues 中找到了维护者的问题和评论 [来源,请参见此处](https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/224): 引用:“.. **设备需要显示在 upower -d 的输出中才能显示在电源设置面板中(无论是笔记本电脑还是台式机)。目前,这意味着只有将电池状态导出为支持内核以及通过 BATT 配置文件导出电池的蓝牙 LE 设备。**..” (3认同)
  • 不幸的是,我在我的机器上看不到第一部分“设备”。我有相同的 Ubuntu20.04.1 LTS。 (2认同)