D-Bus是针对桌面环境优化的IPC机制,用于进程间的通信或进程与内核的通信。支持DBus的系统都有两个标准的消息总线:系统总线和会话总线。系统总线用于系统与应用的通信。会话总线用于应用之间的通信。有一个叫d-feet的python程序,我们可以用他来观察系统中的DBus世界。
可以用dbus命令行工具dbus-send来实现Bluetooth的A2DP的连接:
1. 获得object path:
# dbus-send –system –print-reply –dest=org.bluez / org.bluez.Manager.DefauleAdapter
输出:/org/bluez/841/hci0
这条命令的作用就是向系统消息总线上的org.bluez对象中的Manager对象,发送一条获得默认的Adapter的对象路径的方法.
2. 获得指定设备的object path:
# dbus-send –system –print-reply –dest=org.bluez /org/bluez841/hci0 org.bluez.Adapter.FindDevice string:00:15:AF:FB:48:CE
输出:/org/bluez/841/hci0/dev_00_15_AF_FB_48_CE
3.连接服务
# dbus-send –system –print-reply –dest=org.bluez /org/bluez841/hci0/dev_00_15_AF_FB_48_CE org.bluez.AudioSink.Connect