我编写了下面的代码来尝试检测是否通过 USB 连接了特定设备。我想遍历连接的设备。
def scanCameraInterfaces(self):
ud_manager_obj = dbus.SystemBus().get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
om = dbus.Interface(ud_manager_obj, 'org.freedesktop.systemd1.Unit')
try:
for k, v in om.GetManagedObjects().items():
print(k)
print(v)
except Exception:
print("No devices found...")
但是,这将始终打印“未找到设备...”。所以我删除了try
,所以我可以看到错误。它抛出这个:dbus.exceptions.DbusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules: type="method_call", sender=":1.39" (uid=1000 pid=1009 comm="python3 usbtest.py") interface="org.freedesktop.systemd1.Unit" member="GetManagedObjects" error name="(unset)" request_reply="0" destionation=":1.1" (uid=0 pid=1 comm="/sbin/init splash ")
。
我究竟做错了什么?