获取消息发送者 "dbus_request_name" 设置的总线名称

get bus name as set by "dbus_request_name" of a message sender

出于调试目的,我想知道 dbus 消息的发件人姓名。但是 dbus_message_get_sender returns 发件人的唯一名称通常是这样的::1.60。我正在寻找一种方法来获取 dbus_request_name.

设置的名称

org.freedesktop.DBus接口提供查询unique name对应set name的方法,调用[=14] =].但是我找不到相反的方法?


我想到的一种方法是使用 ListNames 方法获取所有已注册名称的列表,然后使用 [=14= 查询每个 name 的唯一名称] 直到匹配发生。这应该可行,但我仍然认为应该有更简单的方法。

One method I figured is to get a list of all registered names with the ListNames method, then query the unique name for each name with GetNameOwner until a match happens. This should work but I still think that there should be a simpler way of doing this.

这是实现你想要的正确方法。

org.freedesktop.DBus interface 上没有从唯一名称(例如 :1.5)映射到众所周知的名称(例如 org.bluez)的方法,因为每个唯一名称可能是零个或多个知名名称的所有者。

可以说可能有一个 org.freedesktop.DBus.ListNamesForOwner() 方法可以将唯一名称映射到 数组 知名名称,但还没有人写过。