在 Bluez 中创建 dbus 接口

Posted

技术标签:

【中文标题】在 Bluez 中创建 dbus 接口【英文标题】:Creation of dbus interfaces in Bluez 【发布时间】:2012-09-02 11:33:32 【问题描述】:

一个关于创建dbus接口如

的问题

org.bluez.Audio, org.bluez.Audiosource

出现在 d-feet 调试器上。

运行 Bluez(例如笔记本电脑)的主机是否为充当蓝牙 A2DP 源的远程设备创建接口 org.bluez.AudioSource

同样,如何在任何蓝牙手机上创建一个 org.bluez.AudioSink 接口,例如使其充当 A2DP 接收器?在这种情况下,主机(例如笔记本电脑)是否应该创建一个 AudioSink 接口来与手机端的 bluez 进行交互?

【问题讨论】:

也许nex.scrapping.cc/articles/linux-bluez-a2dp-alsa.html 会帮助你。如果这对您没有帮助,请在 freenode 尝试#bluez-users。 (频道取自帖子) 我在我的主机上启用了音频接收器服务,现在设备应该可以识别它以连接到我的 A2DP_SINK 服务,对吧? 我不知道。在 freenode 的 #bluez-users 询问。 webchat.freenode.net 【参考方案1】:

在 C 中创建 A2DP 连接你可以使用这些参数

DBusMessage *msg;   
msg = dbus_message_new_method_call("org.bluez",btadrr_path,"org.bluez.AudioSource","Connect");

这里的 btaddre_path 是我已经配对的蓝牙设备路径...

在 Python 中

manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")

adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()), "org.bluez.Adapter");

audiosrc = dbus.Interface(bus.get_object("org.bluez", adapter.FindDevice(bdaddr)), "org.bluez.AudioSource");

audiosrc.Connect()

【讨论】:

以上是关于在 Bluez 中创建 dbus 接口的主要内容,如果未能解决你的问题,请参考以下文章

通过 Bluez DBus API 的设备连接/断开通知

BlueZ DBUS API - GATT 接口对 BLE 设备不可用

主动 BLE 扫描 (BlueZ) - DBus 问题

C中的Dbus结构和方法调用

Bluez DBUS api NewConnection 方法给出了错误的文件描述符

Linux BlueZ dbus 通信