小编Cal*_*meo的帖子

USB设备UDev和D-BUS

我正在尝试获取Ubuntu 10.10中当前插入的USB设备的列表,并监视发生的变化,例如使用UDev和D-BUS插入或拔出的设备.我是使用D-BUS进行编程的新手.我看到一个例子: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()
Run Code Online (Sandbox Code Playgroud)

任何帮助都会被贬低.先谢谢你,Calota Romeo

python linux ubuntu dbus udev

15
推荐指数
1
解决办法
2万
查看次数

标签 统计

dbus ×1

linux ×1

python ×1

ubuntu ×1

udev ×1