如何通过其 dbus 接口与 geoclue 交谈?

Jos*_*rot 8 command-line arch-linux d-bus

我试图更好地了解是什么geoclue,以及如何从中获取信息。

根据我的理解,可以通过它的dbus界面访问它以查找有关用户的地理信息。问题是找到正确的dbus命令来获取这些信息。

我在互联网上搜索并检查了我能找到的所有文档,但似乎仍然找不到简单的答案,除了关于它的dbus属性的晦涩信息,我缺乏正确拼凑的知识。

是否有dbus我可以用来从 获取此信息的命令geoclue,或者该命令应该是什么样子的示例?我没有将文档放在一起以获得此信息所需的信息。

小智 4

安装qdbus。语法是:

qdbus servicename path function parameters
Run Code Online (Sandbox Code Playgroud)

servicename通常是程序的名称(例如:org.freedesktop.Geoclue.Master),path类似于/org/freedesktop/Geoclue/Master/client0function看起来像 org.freedesktop.Geoclue.GetStatus。

如果您键入不完整的命令(例如: only servicename、 notpath和其余命令),qdbus将回复下一个参数的选项列表。您可以使用它来探索可用的功能。

例如:

qdbus org.freedesktop.Geoclue.Providers.UbuntuGeoIP /org/freedesktop/Geoclue/Providers/UbuntuGeoIP org.freedesktop.Geoclue.Position.GetPosition
Run Code Online (Sandbox Code Playgroud)

输出:

3
<timestamp>
<lat>
<lon>
<alt>
Run Code Online (Sandbox Code Playgroud)

现在您可以使用文档来获取更多信息。