Я пытаюсь получить список подключенных в настоящее время USB-устройств в Ubuntu 10.10 и отслеживать происходящие изменения, например, устройства, подключаемые или отключаемые с помощью UDev и D-BUS. Я новичок в программировании с использованием D-BUS. Я видел один пример: Linux: как обнаружить USB-клавиатура подключается и отключается только в том случае, если используется HAL, и я знаю, что HAL устарел. Я нашел некоторый рабочий код, немного изменил его, но он не работает ни на одном устройстве, а только на устройствах хранения, таких как USB-накопители, медиаплееры или устройства с компакт-дисками. Я хочу, чтобы мышки, клавиатуры, USB-камеры заряжали все, что подключено к USB. Я хочу, чтобы моя программа знала об этом. Это в основном то, что у меня есть ( http://moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.html ):
import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop
def device_added_callback(device):
print 'Device %s was added' % (device)
def device_changed_callback(device):
print 'Device %s was changed' % (device)
#must be done before connecting to DBus
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
proxy = bus.get_object("org.freedesktop.UDisks",
"/org/freedesktop/UDisks")
iface = dbus.Interface(proxy, "org.freedesktop.UDisks.Device")
devices = iface.get_dbus_method('EnumerateDevices')()
print '%s' % (devices)
#addes two signal listeners
iface.connect_to_signal('DeviceAdded', device_added_callback)
iface.connect_to_signal('DeviceChanged', device_changed_callback)
#start the main loop
mainloop = gobject.MainLoop()
mainloop.run()
Любая помощь будет оценена. Заранее спасибо, Калота Ромео.