蓝牙音箱/耳机/设备如何交换电池电量信息? (尤其是 Android 设备)

问题描述 投票:0回答:1

我正在尝试在 Linux 上实现蓝牙电池监控工具,但绝对没有关于制造商使用哪些协议将设备的电池电量发送到主机的信息(我对 Android 特别感兴趣,因为它似乎能够处理“左”和“右”电池)。

我设法掌握了 BLE GATT 特性,它定义了可以使用 dbus 读取的“电池服务/级别”。 我正确地做到了这一点,但似乎没有蓝牙耳机使用 GATT 特性来发送电池信息。

我发现一篇文章提到了很多看似合理的协议,但这是 6 年前的事了,我想知道是否有人真的知道是否有官方且有记录的方法可以将电池信息数据发送到设备。

附注我提到 Android 的另一个原因是,如果 Android 支持某个协议,那么每个制造商都可能会实现它。

bluetooth specifications battery
1个回答
0
投票

蓝牙音频设备通常实现HFP(免提配置文件),其中提供电池信息。这与 GATT 和 BLE 无关。这是一个“经典”(BR/EDR)配置文件。耳机本质上是“经典”设备。尽管如今许多音频设备也实现了 BLE 控制协议(通常是定制的),但它们并不是“低能耗”设备。 (*)

某些设备确实支持GATT 电池服务,但这将是逐个设备的事情。更常见的是,如果音频设备通过 BLE 宣传其电池,它将成为自定义协议的一部分,以便与自己的应用程序配合使用,而不是使用标准服务。 (这就是我设计过的大多数耳塞的工作原理。)

在 Linux 上,我相信您会使用 oFono 来实现此目的。

在 Android 上,您可以使用 BluetoothHeadset 访问 HFP 的 AG 角色。有关介绍,请参阅如何在 Android 中以编程方式使用蓝牙 HFP 配置文件?

iOS 上没有同等功能。您根本无法在 iOS 上访问 HFP 或大多数其他经典配置文件。操作系统实现了它们(因此您的 Linux 工具将能够互操作),但在 iOS 上不提供任何公共 API。

(*) 有一种新技术称为 LE-Audio,但是,就像蓝牙中的许多技术一样,它是另一个完全独立的技术。我怀疑 LE-Audio 所依赖的 CAP 设备通常也会提供 LE 电池服务,但我没有与其中任何一个合作过。

© www.soinside.com 2019 - 2024. All rights reserved.