Ubuntu 10.10で現在接続されているUSBデバイスのリストを取得し、UDevとD-BUSを使用して接続または接続解除されているデバイスなどの変更を監視しようとしています。私はD-BUSを使ったプログラミングにかなり慣れていません。私は1つの例を見ました:Linux:USBキーボードが接続されているかどうかを検出する方法は、HALを使用しているものだけであり、HALが非推奨であることを知っています。動作するコードを見つけて少し変更しましたが、USBスティック、メディアプレーヤー、CD-ROMデバイスなどのストレージデバイスのみでは動作しません。私は、マウス、キーボード、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()
どんな助けでも感謝されるでしょう。よろしくお願いします、Calota Romeo