How to get a list of available DBus interface properties?
I am writing a script that will track certain types of USB device connections. The way to distinguish the tracking connections from all usb connections, I think, is to check the properties of the signal interfaces that DBus sends over the USB connection. I would like to get a list of all such properties in order to select the appropriate one.
My code is:
import sys
import dbus
from dbus.mainloop.glib import DBusGMainLoop
import gobject
def deviceAdded(udi):
device = bus.get_object("org.freedesktop.Hal", udi)
device_if = dbus.Interface(device, 'org.freedesktop.Hal.Device')
if device_if.GetPropertyString('info.subsystem') == 'usb_device':
def deviceRemoved(udi):
pass
if __name__ == "__main__":
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(
deviceAdded,
'DeviceAdded',
'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal',
'/org/freedesktop/Hal/Manager')
bus.add_signal_receiver(
deviceRemoved,
'DeviceRemoved',
'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal',
'/org/freedesktop/Hal/Manager')
loop = gobject.MainLoop()
try:
loop.run()
except KeyboardInterrupt:
print "usb-device-tracker: keyboad interrupt received, shutting down"
loop.quit()
sys.exit(0)
source
share