This file is indexed.

/usr/share/dbus-1/interfaces/org.freedesktop.GeoClue2.xml is in geoclue-2.0 2.4.7-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<node>

  <!--
      org.freedesktop.GeoClue2.Manager:
      @short_description: The GeoClue service manager

      This is the interface you use to talk to main GeoClue2 manager object at
      path "/org/freedesktop/GeoClue2/Manager". The only thing you do with this
      interface is to call org.freedesktop.GeoClue2.Manager.GetClient() on it
      to get your application specific client object.
  -->
  <interface name="org.freedesktop.GeoClue2.Manager">
    <!--
        InUse:

        Whether service is currently is use by any application.
    -->
    <property name="InUse" type="b" access="read"/>

    <!--
        AvailableAccuracyLevel:

        The level of available accuracy, as
        <link linkend="GClueAccuracyLevel">GClueAccuracyLevel</link>.
    -->
    <property name="AvailableAccuracyLevel" type="u" access="read"/>

    <!--
        GetClient:
        @client: The path for newly created client object

        Retrieves a client object which can only be used by the calling
        application only.
    -->
    <method name="GetClient">
      <arg name="client" type="o" direction="out"/>
    </method>

    <!--
        AddAgent:
        @id: The Desktop ID (excluding .desktop) of the agent

        An API for user authorization agents to register themselves. Each agent
        is responsible for the user it is running as. Application developers
        can and should simply ignore this API.
    -->
    <method name="AddAgent">
      <arg name="id" type="s" direction="in"/>
    </method>
  </interface>

  <!--
      org.freedesktop.GeoClue2.Client:
      @short_description: The Application-specific client API

      This is the interface you use to retrieve location information and receive
      location update signals from GeoClue service. You get the client object to
      use this interface on from org.freedesktop.GeoClue2.Manager.GetClient()
      method.
  -->
  <interface name="org.freedesktop.GeoClue2.Client">
    <!--
        Location:

        Current location as path to a #org.freedesktop.GeoClue2.Location object.
        Please note that this property will be set to "/" (D-Bus equivalent of
        null) initially, until Geoclue finds user's location. You want to delay
        reading this property until your callback to
        #org.freedesktop.GeoClue2.Client::LocationUpdated signal is called for
        the first time after starting the client.
    -->
    <property name="Location" type="o" access="read"/>

    <!--
        DistanceThreshold:

        Contains the current distance threshold in meters. This value is used
        by the service when it gets new location info. If the distance moved is
        below the threshold, it won't emit the LocationUpdated signal.
        The default value is 0. When TimeThreshold is zero, it always emits
        the signal.
    -->
    <property name="DistanceThreshold" type="u" access="readwrite">
        <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
    </property>

    <!--
        TimeThreshold:

        Contains the current time threshold in seconds. This value is used
        by the service when it gets new location info. If the time since the
        last update is below the threshold, it won't emit the LocationUpdated
        signal. The default value is 0. When TimeThreshold is zero, it always
        emits the signal.
    -->
    <property name="TimeThreshold" type="u" access="readwrite">
        <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
    </property>

    <!--
        DesktopId:

        The desktop file id (the basename of the desktop file). This property
        must be set by applications for authorization to work, unless your app
        is an xdg-app bundle.
    -->
    <property name="DesktopId" type="s" access="readwrite"/>

    <!--
        RequestedAccuracyLevel:

        The level of accuracy requested by client, as
        <link linkend="GClueAccuracyLevel">GClueAccuracyLevel</link>.

        Please keep in mind that the actual accuracy of location information is
        dependent on available hardware on your machine, external resources
        and/or how much accuracy user agrees to be confortable with.
    -->
    <property name="RequestedAccuracyLevel" type="u" access="readwrite"/>

    <!--
        Active:

        If client is active, i-e started successfully using
        org.freedesktop.GeoClue2.Client.Start() and receiving location updates.

        Please keep in mind that geoclue can at any time stop and start the
        client on user (agent) request. Applications that are interested in
        in these changes, should watch for changes in this property.
    -->
    <property name="Active" type="b" access="read"/>

    <!--
        Start:

        Start receiving events about the current location. Applications should
        hook-up to #org.freedesktop.GeoClue2.Client::LocationUpdated signal
        before calling this method.
    -->
    <method name="Start"/>

    <!--
        Stop:

        Stop receiving events about the current location.
    -->
    <method name="Stop"/>

    <!--
        LocationUpdated:
        @old: old location as path to a #org.freedesktop.GeoClue2.Location object
        @new: new location as path to a #org.freedesktop.GeoClue2.Location object

        The signal is emitted every time the location changes.
        The client should set the DistanceThreshold property to control how
        often this signal is emitted.
    -->
    <signal name="LocationUpdated">
      <arg name="old" type="o"/>
      <arg name="new" type="o"/>
    </signal>
  </interface>

  <!--
      org.freedesktop.GeoClue2.Location:
      @short_description: The Location interface

      This is the interface you use on location objects.
  -->
  <interface name="org.freedesktop.GeoClue2.Location">

    <!--
        Latitude:

        The latitude of the location, in degrees.
    -->
    <property name="Latitude" type="d" access="read"/>

    <!--
        Longitude:

        The longitude of the location, in degrees.
    -->
    <property name="Longitude" type="d" access="read"/>

    <!--
        Accuracy:

        The accuracy of the location fix, in meters.
    -->
    <property name="Accuracy" type="d" access="read"/>

    <!--
        Altitude:

        The altitude of the location fix, in meters. When unknown, its set to
        minimum double value, -1.7976931348623157e+308.
    -->
    <property name="Altitude" type="d" access="read"/>

    <!--
        Speed:

        The speed in meters per second. When unknown, it's set to -1.0.
    -->
    <property name="Speed" type="d" access="read"/>

    <!--
        Heading:

        The heading direction in degrees with respect to North direction, in
        clockwise order. That means North becomes 0 degree, East: 90 degrees,
        South: 180 degrees, West: 270 degrees and so on. When unknown,
        it's set to -1.0.
    -->
    <property name="Heading" type="d" access="read"/>

    <!--
        Description:

        A human-readable description of the location, if available.

        WARNING: Applications should not rely on this property since not all
        sources provide a description. If you really need a description (or
        more details) about current location, use a reverse-geocoding API, e.g
        geocode-glib.
    -->
    <property name="Description" type="s" access="read"/>


    <!--
        Timestamp:

        The timestamp when the location was determined, in seconds and
        microseconds since the Epoch. This is the time of measurement if the
        backend provided that information, otherwise the time when GeoClue
        received the new location.

        Note that GeoClue can't guarantee that the timestamp will always
        monotonically increase, as a backend may not respect that.
        Also note that a timestamp can be very old, e.g. because of a cached
        location.
    -->
    <property name="Timestamp" type="(tt)" access="read"/>
  </interface>
</node>