[英]Not getting dbus message arguments
我設置了一段讀取dbus消息的代碼:
def nf(bus, message):
print(message)
args = message.get_args_list()
for arg in message.get_args_list():
print("arg:" + arg)
DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_match_string_non_blocking("interface='org.freedesktop.Notifications',eavesdrop='true',member='Notify'")
bus.add_message_filter(nf)
mainloop = gobject.MainLoop()
mainloop.run()
當我啟動它時,我會收到啟動消息<dbus.lowlevel.SignalMessage path: /org/freedesktop/DBus, iface: org.freedesktop.DBus, member: NameAcquired, dest: :1.215>
和參數1.215
。
但是,當我發送帶有notify-send
發送的消息時,我也會收到消息<dbus.lowlevel.MethodCallMessage path: /org/freedesktop/Notifications, iface: org.freedesktop.Notifications, member: Notify dest: :1.212>
但我沒有沒有任何論據。 當我使用dbus-monitor嘗試此操作時,我得到了所有參數。 我想念什么?
由於某些原因,arg不喜歡與其他內容一起放入打印語句。 似乎python不會像您只打印arg [0]一樣自動將列表項轉換為字符串。
更改
print('arg:' + arg)
至
print('arg:' + str(arg))
甚至
print('%s %s' % ('arg:', arg))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.