我正在DBus上观看HAL事件,观察AC适配器何时被移除/插入。
通过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
}
]但是,在ac_adapter.present中显式查询org.freedesktop.Hal属性可以正确返回设备状态。
的问题:,在PropertyModified事件中,布尔人发送了什么?是否存在可以筛选的事件,其中包含适配器存在的信息,还是必须在收到更模糊的“发生了什么”消息后显式地查询?
哈尔DBus文档不是特别有用,否则我找错地方了。
发布于 2012-10-17 21:49:15
在收到更模糊的“发生了什么”消息后,我是否必须显式地查询?
是。如果您使用像d-feet这样的DBus浏览器,您将看到AC适配器对象上的org.freedesktop.Hal.Device接口有一些方法。
GetProperty(String property) -> VariantGetPropertyBoolean(String property) -> Boolean -可能对ac_adapter.present有用https://stackoverflow.com/questions/12022412
复制相似问题