我正试图破解quodlibet mpris插件的额外功能。如果您想了解我正在尝试做的更多详细信息,请参阅:http://code.google.com/p/quodlibet/issues/detail?id=889,但这不是解答问题的必要条件。
插件启动时,插件会插入许多dbus.service.Object类。对于其中一个对象,我想得到对象存在的dbus ProxyObject客户端的数量,例如:我想知道连接了多少客户端。
答案 0 :(得分:1)
据我所知,DBus服务提供者和DBus服务使用者之间没有“连接”或其他状态关系(至少在DBus message protocol spec中没有提到这一点)。从规范中可以清楚地看到,所有ProxyObject和类似的东西都只是客户端实现细节,而你无法检测到你的DBus服务是否有任何“客户端”。
你可以使用一些非标准的MPRIS扩展(例如'ping'消息)并要求客户遵守这些扩展,或者你可以制作一个可配置的选项,如“不要退出quodlibet,如果有的话以下进程正在运行“。