kic*_*omy 6 python usb dbus udev
我正在尝试获取 Ubuntu 10.10 中当前插入的 USB 设备的列表并监视发生的更改,例如使用 udev 和 D-Bus 插入或拔出设备。
我对使用 D-Bus 编程还很陌生。我看到一个例子:“ Linux:如何检测USB键盘是否插入和拔出”。问题是它使用 HAL,我知道 HAL 已被弃用。
我找到了一些工作代码,但它只适用于存储设备,如 U 盘、媒体播放器或 CD-ROM 驱动器。我想要全部:鼠标、键盘、USB 摄像头、充电器;任何插入 USB 的东西。
如何监听任何 USB 设备插入和拔出的 D-Bus 事件?
这基本上就是我现在所拥有的(也):
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4304 次 |
| 最近记录: |