how can i check weather the given device is connected. using org.bluez.AudioSource GetProperty I am using c and DBus,can anybody help me to get out of this...
问问题
1563 次
1 回答
1
我假设您一直在研究BlueZ D-BUS API
有关收听 BlueZ 信号和查询信息的所有内容的宝贵文档。doc/
您可以在文件夹中的任何 BlueZ 源中找到它。
要检查设备是否已连接,您首先需要使用 D-BUS 获取计算机上的所有蓝牙设备及其路径,我不会提供任何 C 文档,因为您可以使用 Google 轻松找到大量关于此的示例。我将向您展示您可以通过哪些 D-BUS 调用dbus-send
来获取此类信息。
获取设备列表:
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 接口。
获取连接到 AudioSource 接口的设备:
dbus-send --system \
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0/dev_XX_XX_XX_XX_XX_XX \
org.bluez.AudioSource.GetProperties
我发现首先尝试使用 d-bus 调用更方便,dbus-send
因为 D-BUS C API 有点混乱且使用不方便。
于 2012-11-24T17:25:25.433 回答