我在 python 中通过 dbus 使用 Udisks 来卸载 USB 设备(在本例中为 Kindle),但我想向它发送弹出信号,因为这会将 Kindle 从 USB 模式踢回其通常的界面。
Udisks 不会让我 DriveEject,因为它不是真正的驱动器,我认为这是一个功能。给出的错误是:
dbus.exceptions.DBusException: org.freedesktop.UDisks.Error.Failed: Device is not a drive
Udisks文档提到了可弹出属性:
ID_DRIVE_EJECTABLE
驱动器中的介质是否可以物理弹出。仅当驱动器真正使用(或不使用)可弹出媒体时,才将其设置为 1(或 0)。特别是,对于需要通过弹出(1) 发送命令的 iPod 或 Kindle 设备等,不需要设置此选项,因为桌面用户会话将为可移动设备提供此选项,无论它们是否可弹出。如果未设置此属性,将使用启发式方法来确定介质是否可弹出(使用光盘、Zip 或 Jaz 介质的驱动器被视为可弹出)。
但没有解释如何从桌面用户会话中执行此操作。
(Nautilus 可以让我从桌面 shell 中很好地弹出。'eject' shell 命令将卸载但不会在没有 sudo 的情况下将弹出信号发送到设备)
有没有任何合法的方法可以用 Udisk 做到这一点,如果没有,那 nautlius 是如何做到的?