Bluetooth 如何在d-bus中手动注册org.bluez服务?

Bluetooth 如何在d-bus中手动注册org.bluez服务?,bluetooth,dbus,bluez,Bluetooth,Dbus,Bluez,我正试图将raspberry pi变成无线媒体中心,由移动设备通过蓝牙控制。因为我想获得蓝牙应用程序编程的高级水平,所以我使用org.bluez服务的所有d-bus方法,而不需要守护程序bluetoothd的帮助。所以我关闭了蓝牙守护进程 update-rc.d bluetooth disable 之后,d-bus告诉我们没有像org.bluez这样的服务。例如,我想获取有关蓝牙适配器的信息: dbus-send --system --print-reply --dest=org.bluez

我正试图将raspberry pi变成无线媒体中心,由移动设备通过蓝牙控制。因为我想获得蓝牙应用程序编程的高级水平,所以我使用org.bluez服务的所有d-bus方法,而不需要守护程序bluetoothd的帮助。所以我关闭了蓝牙守护进程

update-rc.d bluetooth disable
之后,d-bus告诉我们没有像org.bluez这样的服务。例如,我想获取有关蓝牙适配器的信息:

dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters
我得到

Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files

我不明白Bluetooth是如何在d-bus中注册的。我知道()用户必须创建特殊的.service文件,但是这个文件中应该使用什么蓝牙可执行文件呢

Bluetooth提供org.bluez服务。如果你禁用它,那么你就不能使用该服务。您需要自己实现整个服务。我不建议这样做。我认为您要做的是充当与服务交互的客户机。bluetooth将处理所有低级蓝牙细节。您可以将注意力集中在希望您的设备实现的更高级别的BT行为上。@Alan Au,谢谢您的评论。所有低级蓝牙细节都可以通过d-bus接口完成。bluetooth打开蓝牙设备,创建代理(安全问题接口和与外部设备配对)等。我想手动执行此操作。我可以创建另一个bluetooth代理,但我不知道它将如何与bluetooth交互。我不明白你的意思。Bluetooth是所有bluez dbus API的服务提供商。如果你禁用它,那么你就不能使用这些。所以我不知道你所说的“所有底层的bluetoth细节都可以通过dbus接口完成”是什么意思。当然,您可以创建另一个代理。而且你也不会禁用Bluetooth来做这件事。bluez dbus API正是为此而设计的。你可以通过网络来实现。