gpt4 book ai didi

c - 如何使用 org.bluez.AudioSource GetProperty

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:00 31 4
gpt4 key购买 nike

我如何检查给定设备是否已连接。使用 org.bluez.AudioSource GetProperty我正在使用 c 和 DBus,任何人都可以帮助我摆脱这个......

最佳答案

我假设您一直在研究 BlueZ D-BUS API,它是有关监听 BlueZ 信号和查询信息的所有内容的宝贵文档。您可以在 doc/ 文件夹中的任何 BlueZ 源代码中找到它。

要检查设备是否已连接,首先需要使用 D-BUS 获取计算机上的所有蓝牙设备及其路径,我不会提供任何 C 文档,因为您可以轻松找到使用谷歌有很多关于这个的例子。相反,我将向您展示您可以通过 dbus-send 进行哪些 D-BUS 调用以获取此类信息。

获取设备列表:

dbus-send --system \  
--dest=org.bluez \
--print-reply / \
org.bluez.Manager.GetProperties

这将返回一组适配器及其路径。
获得这些路径后,您可以检索与您的适配器配对的所有蓝牙设备的列表。

获取配对设备:

dbus-send --system \  
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0 \
org.bluez.Adapter.GetProperties

这会为您提供 Devices 数组字段中的配对设备列表。

一旦您拥有与蓝牙适配器配对的设备列表,您就可以知道它是否连接到 AudioSource 接口(interface)。

获取连接到 AudioSource 接口(interface)的设备:

dbus-send --system \  
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0/dev_XX_XX_XX_XX_XX_XX \
org.bluez.AudioSource.GetProperties

我发现首先尝试使用 dbus-send 调用 d-bus 更方便,因为 D-BUS C API 有点困惑且使用起来不方便。

关于c - 如何使用 org.bluez.AudioSource GetProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854504/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com