我正在观看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 documentation并没有特别的帮助,或者我找错了地方。
答案 0 :(得分:0)
收到更多模糊的'发生了什么'的消息后,我是否必须明确查询?
是。如果你使用像d-feet这样的DBus浏览器,你会发现AC适配器对象上的org.freedesktop.Hal.Device
接口有方法
GetProperty(String property) -> Variant
GetPropertyBoolean(String property) -> Boolean
- 可能对ac_adapter.present