簡體   English   中英

沒有得到dbus消息參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM