summaryrefslogtreecommitdiff
path: root/doc/adapter-api.txt
blob: f34d58fd87837f7bb75543c7109f50d110927d24 (plain)
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
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
BlueZ D-Bus Adapter API description
***********************************

Copyright (C) 2004-2010  Marcel Holtmann <marcel@holtmann.org>
Copyright (C) 2005-2006  Johan Hedberg <johan.hedberg@nokia.com>
Copyright (C) 2005-2006  Claudio Takahasi <claudio.takahasi@indt.org.br>
Copyright (C) 2006-2007  Luiz von Dentz <luiz.dentz@indt.org.br>


Adapter hierarchy
=================

Service		org.bluez
Interface	org.bluez.Adapter
Object path	[variable prefix]/{hci0,hci1,...}

Methods		dict GetProperties()

			Returns all properties for the adapter. See the
			properties section for available properties.

			Possible Errors: org.bluez.Error.NotReady

		void SetProperty(string name, variant value)

			Changes the value of the specified property. Only
			properties that are listed a read-write are changeable.
			On success this will emit a PropertyChanged signal.

			Possible Errors: org.bluez.Error.InvalidArguments

		void RequestSession()

			This method requests a client session that provides
			operational Bluetooth. A possible mode change must be
			confirmed by the user via the agent.

			Clients may request multiple sessions. All sessions
			are released when adapter's mode is changed to off
			state.

			Possible Errors: org.bluez.Error.Rejected

		void ReleaseSession()

			Release a previously requested session. It sets
			adapter to the mode in use on the moment of session
			request.

			SetProperty method call changes adapter's mode
			persistently, such that session release will not
			modify it.

			Possible Errors: org.bluez.Error.DoesNotExist

		void StartDiscovery()

			This method starts the device discovery session. This
			includes an inquiry procedure and remote device name
			resolving. Use StopDiscovery to release the sessions
			acquired.

			This process will start emitting DeviceFound and
			PropertyChanged "Discovering" signals.

			Possible errors: org.bluez.Error.NotReady
					 org.bluez.Error.Failed

		void StopDiscovery()

			This method will cancel any previous StartDiscovery
			transaction.

			Note that a discovery procedure is shared between all
			discovery sessions thus calling StopDiscovery will only
			release a single session.

			Possible errors: org.bluez.Error.NotReady
					 org.bluez.Error.Failed
					 org.bluez.Error.NotAuthorized

		object FindDevice(string address)

			Returns the object path of device for given address.
			The device object needs to be first created via
			CreateDevice or CreatePairedDevice.

			Possible Errors: org.bluez.Error.DoesNotExist
					 org.bluez.Error.InvalidArguments

		array{object} ListDevices() {deprecated}

			Returns list of device object paths.
			This method is deprecated, instead use the Devices
			Property to get the list of devices object paths.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.Failed
					 org.bluez.Error.OutOfMemory

		object CreateDevice(string address)

			Creates a new object path for a remote device. This
			method will connect to the remote device and retrieve
			all SDP records.

			If the object for the remote device already exists
			this method will fail.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.Failed

		object CreatePairedDevice(string address, object agent,
							string capability)

			Creates a new object path for a remote device. This
			method will connect to the remote device and retrieve
			all SDP records and then initiate the pairing.

			If previously CreateDevice was used successfully,
			this method will only initiate the pairing.

			Compared to CreateDevice this method will fail if
			the pairing already exists, but not if the object
			path already has been created. This allows applications
			to use CreateDevice first and the if needed use
			CreatePairedDevice to initiate pairing.

			The agent object path is assumed to reside within the
			process (D-Bus connection instance) that calls this
			method. No separate registration procedure is needed
			for it and it gets automatically released once the
			pairing operation is complete.

			The capability parameter is the same as for the
			RegisterAgent method.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.Failed

		void CancelDeviceCreation(string address)

			Aborts either a CreateDevice call or a
			CreatePairedDevice call.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.NotInProgress

		void RemoveDevice(object device)

			This removes the remote device object at the given
			path. It will remove also the pairing information.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.Failed

		void RegisterAgent(object agent, string capability)

			This registers the adapter wide agent.

			The object path defines the path of the agent
			that will be called when user input is needed.

			If an application disconnects from the bus all
			of its registered agents will be removed.

			The capability parameter can have the values
			"DisplayOnly", "DisplayYesNo", "KeyboardOnly" and
			"NoInputNoOutput" which reflects the input and output
			capabilities of the agent. If an empty string is
			used it will fallback to "DisplayYesNo".

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.AlreadyExists

		void UnregisterAgent(object agent)

			This unregisters the agent that has been previously
			registered. The object path parameter must match the
			same value that has been used on registration.

			Possible errors: org.bluez.Error.DoesNotExist

Signals		PropertyChanged(string name, variant value)

			This signal indicates a changed value of the given
			property.

		DeviceFound(string address, dict values)

			This signal will be sent every time an inquiry result
			has been found by the service daemon. In general they
			only appear during a device discovery.

			The dictionary can contain basically the same values
			that are returned by the GetProperties method
			from the org.bluez.Device interface. In addition there
			can be values for the RSSI, the TX power level and
			Broadcaster role.

		DeviceDisappeared(string address)

			This signal will be sent when an inquiry session for
			a periodic discovery finishes and previously found
			devices are no longer in range or visible.

		DeviceCreated(object device)

			Parameter is object path of created device.

		DeviceRemoved(object device)

			Parameter is object path of removed device.

Properties	string Address [readonly]

			The Bluetooth device address.

		string Name [readwrite]

			The Bluetooth friendly name. This value can be
			changed and a PropertyChanged signal will be emitted.

		uint32 Class [readonly]

			The Bluetooth class of device.

		boolean Powered [readwrite]

			Switch an adapter on or off. This will also set the
			appropiate connectable state.

		boolean Discoverable [readwrite]

			Switch an adapter to discoverable or non-discoverable
			to either make it visible or hide it. This is a global
			setting and should only be used by the settings
			application.

			If the DiscoverableTimeout is set to a non-zero
			value then the system will set this value back to
			false after the timer expired.

			In case the adapter is switched off, setting this
			value will fail.

			When changing the Powered property the new state of
			this property will be updated via a PropertyChanged
			signal.

		boolean Pairable [readwrite]

			Switch an adapter to pairable or non-pairable. This is
			a global setting and should only be used by the
			settings application.

			Note that this property only affects incoming pairing
			requests.

		uint32 PaireableTimeout [readwrite]

			The pairable timeout in seconds. A value of zero
			means that the timeout is disabled and it will stay in
			pareable mode forever.

		uint32 DiscoverableTimeout [readwrite]

			The discoverable timeout in seconds. A value of zero
			means that the timeout is disabled and it will stay in
			discoverable/limited mode forever.

			The default value for the discoverable timeout should
			be 180 seconds (3 minutes).

		boolean Discovering [readonly]

			Indicates that a device discovery procedure is active.

		array{object} Devices [readonly]

			List of device object paths.

		array{string} UUIDs [readonly]

			List of 128-bit UUIDs that represents the available
			local services.