【发布时间】:2021-06-09 16:57:53
【问题描述】:
我正在尝试从 Java 中为 ModemManager 访问没有运气的 dbus。 我使用来自https://github.com/hypfvieh/dbus-java 的 dbus-java。 到目前为止我所做的是:
- 获取到总线的连接
DBusConnection conn = DBusConnection.getConnection(DBusConnection.DBusBusType.SYSTEM);
- 导入的 Introspection xml,在设备上生成(但我不确定这项工作是否正常)..
- 尝试连接到特定总线以处理信息:
Modem modem = conn.getRemoteObject("org.freedesktop.ModemManager1", "/org/freedesktop/ModemManager1/Modem", Modem.class)
- 连接处理程序以获取信息:
conn.addSigHandler(Modem.StateChanged.class, new DBusSigHandler<Modem.StateChanged>() {
@Override
public void handle(Modem.StateChanged s) {
System.out.println("State" + s._new);
}
});
结果.. 没有事件被触发。在设备上,我看到(使用 dbus-monitor --system)在我运行的所有时间都会触发事件。
例如,在 dbus-monitor 中我看到:
signal time=1615482074.152996 sender=:1.5 -> destination=(null destination) serial=478 path=/org/freedesktop/ModemManager1/Modem/0; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.freedesktop.ModemManager1.Modem"
array [
dict entry(
string "SignalQuality"
variant struct {
uint32 80
boolean true
}
)
]
array [
]
有人能指出我正确的方向吗?我确定我做错了什么。 谢谢 吉安玛丽亚
【问题讨论】:
标签: dbus