如何使用org.bluez.AudioSource GetProperty
如何检查给定设备是否已连接。使用org.bluez.AudioSource GetProperty如何使用org.bluez.AudioSource GetProperty,c,bluetooth,dbus,a2dp,C,Bluetooth,Dbus,A2dp,如何检查给定设备是否已连接。使用org.bluez.AudioSource GetProperty 我正在使用c和DBus,有谁能帮我摆脱这一困境吗…我想您已经研究了BlueZ D-BUS API,这是一个宝贵的文档,可以用于监听BlueZ的信号和查询信息。您可以在doc/文件夹中的任何BlueZ源代码中找到它 要检查设备是否已连接,首先需要使用D-BUS获取计算机上的所有蓝牙设备及其路径,我不会提供任何C文档,因为您可以使用Google轻松找到大量关于此的示例。我将向您展示通过dbus sen
我正在使用c和DBus,有谁能帮我摆脱这一困境吗…我想您已经研究了
BlueZ D-BUS API
,这是一个宝贵的文档,可以用于监听BlueZ的信号和查询信息。您可以在doc/
文件夹中的任何BlueZ源代码中找到它
要检查设备是否已连接,首先需要使用D-BUS获取计算机上的所有蓝牙设备及其路径,我不会提供任何C文档,因为您可以使用Google轻松找到大量关于此的示例。我将向您展示通过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
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 --system \
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0 \
org.bluez.Adapter.GetProperties
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有点混乱,使用起来不方便。我假设您已经研究了BlueZ d-bus API
,这是一个宝贵的文档,可以用于监听BlueZ的信号和查询信息。您可以在doc/
文件夹中的任何BlueZ源代码中找到它
要检查设备是否已连接,首先需要使用D-BUS获取计算机上的所有蓝牙设备及其路径,我不会提供任何C文档,因为您可以使用Google轻松找到大量关于此的示例。我将向您展示通过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
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 --system \
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0 \
org.bluez.Adapter.GetProperties
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有点混乱,使用起来不方便。这一观察结果可能有用。在BlueZ版本4.98
上,org.BlueZ.AudioSource.GetProperties抛出错误:
error org.freedesktop.DBus.error.unknown方法:在BlueZ版本4.101上不存在带有签名“On interface”org.BlueZ.AudioSource”的方法“GetProperties”,它可以工作:
method return sender=:1.2->dest=:1.51 reply\u serial=2数组[dict entry(字符串“State”变量字符串“disconnected”)]谢谢注意到它。似乎是BlueZ()中的一个bug。此观察结果可能有用。在BlueZ版本4.98
上,org.BlueZ.AudioSource.GetProperties抛出错误:
error org.freedesktop.DBus.error.unknown方法:在BlueZ版本4.101上不存在带有签名“On interface”org.BlueZ.AudioSource”的方法“GetProperties”,它可以工作:
method return sender=:1.2->dest=:1.51 reply\u serial=2数组[dict entry(字符串“State”变量字符串“disconnected”)]谢谢注意到它。似乎是BlueZ()中的一个bug。