我正在 DBus 上观看 HAL 事件,观察交流适配器何时被移除/插入。
通过dbus-montior,这两个事件看起来完全相同:
拔出事件
signal sender=:1.85 -> dest=(null destination) serial=3698 path=/org/freedesktop/Hal/devices/computer_power_supply_ac_adapter_AC0; interface=org.freedesktop.Hal.Device; member=PropertyModified
int32 1
array [
struct {
string "ac_adapter.present"
boolean false
boolean false
}
]
插件事件
signal sender=:1.85 -> dest=(null destination) serial=3701 path=/org/freedesktop/Hal/devices/computer_power_supply_ac_adapter_AC0; interface=org.freedesktop.Hal.Device; member=PropertyModified
int32 1
array [
struct {
string "ac_adapter.present"
boolean false
boolean false
}
]
但是,显式查询org.freedesktop.Hal中的ac_adapter.present属性确实会正确返回设备状态。
问题:在 PropertyModified 事件中发送的布尔值是什么?是否存在我可以过滤的事件,该事件将包含有关适配器存在的信息,或者我是否必须在收到更模糊的“发生某事”消息后显式查询?
HAL DBus 文档不是特别有用,或者我找错地方了。