diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-07-29 20:35:12 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-07-29 20:35:12 +0200 |
commit | e0581b5e29c71c4a0b429ebad671e9bb5583f8e0 (patch) | |
tree | 84606447fce9a17818965957296e8ee447b59450 /src/dbus-api.txt | |
parent | 6ff001317710e6cf629ad93db58db615a8be6eee (diff) |
Move hcid to src directory and rename it to bluetoothd
Diffstat (limited to 'src/dbus-api.txt')
-rw-r--r-- | src/dbus-api.txt | 1401 |
1 files changed, 1401 insertions, 0 deletions
diff --git a/src/dbus-api.txt b/src/dbus-api.txt new file mode 100644 index 00000000..622477be --- /dev/null +++ b/src/dbus-api.txt @@ -0,0 +1,1401 @@ +D-Bus API description for BlueZ +******************************* + +Copyright (C) 2004-2007 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) 2005-2006 Eduardo Rocha <eduardo.rocha@indt.org.br> + + +Constant definitions +==================== + +The class of device definition from the Bluetooth specification divides into +three different parts. It the major class, the minor class and the service +classes. The D-Bus interface will always use string constants to identify +any of these classes. + +Service classes positioning, networking, rendering, capturing, + object transfer, audio, telephony, information + +Major classes miscellaneous, computer, phone, access point, + audio/video, peripheral, imaging, wearable, toy, + uncategorized + +Minor classes computer uncategorized, desktop, server, laptop, handheld, + palm, wearable + +Minor classes phone uncategorized, cellular, cordless, smart phone, + modem, isdn + +Minor classes access point fully, 1-17 percent, 17-33 percent, + 33-50 percent, 50-67 percent, 67-83 percent, + 83-99 percent, not available + +Minor classes audio video uncategorized, headset, handsfree,microphone, + loudspeaker, headphones, portable audio, car audio, + set-top box, hifi audio, vcr, video camera, camcorder, + video monitor, video display and loudspeaker, + video conferencing, gaming/toy, unknown + +Minor classes peripheral uncategorized, keyboard, pointing, combo + +Minor classes imaging display, camera, scanner, printer + +Minor classes wearable wrist watch, pager, jacket, helmet, glasses + +Minor classes toy robot, vehicle, doll, controller, game + +Error hierarchy +=============== + +Interface org.bluez.Error + +Shared Errors (Can be thrown by hcid or any bluetooth service) + + DeviceUnreachable + + The remote device is either powered down or out of range. + + AlreadyConnected + A connection request has been received on an already + connected device. + + ConnectionAttemptFailed + + An unexpected error (other than DeviceUnreachable) error + has occured while attempting a connection to a device. + + NotConnected + The remote device is not connected, while the method call + would expect it to be, or is not in the expected state to + perform the action. + + InProgress + + Error returned if an operation is in progress. Since + this is a generic error that can be used in various + situations, the error message should be more clear + about what is in progress. For example "Bonding in + progress". + + InvalidArguments + + The DBUS request does not contain the right number of + arguments with the right type, or the arguments are there + but their value is wrong, or does not makes sense in the + current context. + + OutOfMemory + + Error returned when a memory allocation via malloc() + fails. This error is similar to ENOMEM. + + NotAvailable + + Error returned when a specified record is not + available. + + NotSupported + + The remote device does not support the expected + feature. + + AlreadyExists + One of the requested elements already exists + + DoesNotExist + One of the requested elements does not exist + + Canceled + The operation was canceled. + + Failed + + This is a the most generic error. + It is thrown when something unexpected happens. + + +Hcid specific Errors (Can be thrown by hcid only) + + NotReady + + Error returned when the adapter is DOWN. + + UnknwownMethod + + This is an experimental method. + + NotAuthorized + + Error returned when the caller of a method is not + authorized. This might happen if a caller tries to + terminate a connection that it hasn't created. + + Rejected + + NoSuchAdapter + + Error returned when the requested adapter doesn't + exists. This error is similar to ENODEV. + + NoSuchService + + RequestDeferred + + NotInProgress + + UnsupportedMajorClass + + AuthenticationCanceled + + AuthenticationFailed + + AuthenticationTimeout + + AuthenticationRejected + + RepeatedAttempts + +Manager hierarchy +================= + +Service org.bluez +Interface org.bluez.Manager +Object path /org/bluez + +Methods uint32 InterfaceVersion() + + Returns the current interface version. At the moment + only version 0 is supported. + + Possible errors: org.bluez.Error.InvalidArguments + + string DefaultAdapter() + + Returns object path for the default adapter. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NoSuchAdapter + + string FindAdapter(string pattern) + + Returns object path for the specified adapter. Valid + patterns are "hci0" or "00:11:22:33:44:55". + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NoSuchAdapter + + array{string} ListAdapters() + + Returns list of adapter object paths under /org/bluez + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.Failed + org.bluez.Error.OutOfMemory + + string FindService(string pattern) + + Returns object path for the specified service. Valid + patterns are the unqiue identifier or a bus name. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NoSuchService + + array{string} ListServices() + + Returns list of object paths of current services. + + Possible errors: org.bluez.Error.InvalidArguments + + string ActivateService(string pattern) + + Returns the unqiue bus id of the specified service. + Valid patterns are the same as for FindService(). If + the service is not running it will be started. + +Signals void AdapterAdded(string path) + + Parameter is object path of added adapter. + + void AdapterRemoved(string path) + + Parameter is object path of removed adapter. + + void DefaultAdapterChanged(string path) + + Parameter is object path of the new default adapter, + or an empty string if there is no available adapters. + + void ServiceAdded(string path) + + Parameter is object path of registered service agent. + + void ServiceRemoved(string path) + + Parameter is object path of unregistered service agent. + + +Database hierarchy +================== + +Service org.bluez +Interface org.bluez.Database +Object path /org/bluez + +Methods uint32 AddServiceRecord(array{byte}) + + Adds a new service record and returns the assigned + record handle. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.Failed + + uint32 AddServiceRecordFromXML(string record) + + Adds a new service record and returns the assigned + record handle. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.Failed + + void UpdateServiceRecord(uint32 handle, array{byte}) + + Updates a given service record. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + org.bluez.Error.Failed + + void UpdateServiceRecordFromXML(uint32 handle, string record) + + Updates a given service record provided in the + XML format. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + org.bluez.Error.Failed + + void RemoveServiceRecord(uint32 handle) + + Remove a service record identified by its handle. + + It is only possible to remove service records that + where added by the current connection. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAuthorized + org.bluez.Error.DoesNotExist + org.bluez.Error.Failed + + +Adapter hierarchy +================= + +Service org.bluez +Interface org.bluez.Adapter +Object path /org/bluez/{hci0,hci1,...} + +Methods dict GetInfo() + + Returns the properties of the local adapter. + + Possible errors: org.bluez.Error.NotReady + + string GetAddress() + + Returns the device address for a given path. + + Example: "00:11:22:33:44:55" + + Possible errors: org.bluez.Error.NotReady + + string GetVersion() + + Returns the version of the Bluetooth chip. This version + is compiled from the LMP version. In case of EDR the + features attribute must be checked. + + Example: "Bluetooth 2.0 + EDR" + + Possible errors: none + + string GetRevision() + + Returns the revision of the Bluetooth chip. This is a + vendor specific value and in most cases it represents + the firmware version. This might derive from the HCI + revision and LMP subversion values or via extra vendor + specific commands. + + In case the revision of a chip is not available. This + method should return the LMP subversion value as a + string. + + Example: "HCI 19.2" + + Possible errors: org.bluez.Error.Failed + + string GetManufacturer() + + Returns the manufacturer of the Bluetooth chip. If + the company id is not know the sting "Company ID %d" + where %d should be replaced with the numeric value + from the manufacturer field. + + Example: "Cambridge Silicon Radio" + + Possible errors: org.bluez.Error.Failed + + string GetCompany() + + Returns the company name from the OUI database of the + Bluetooth device address. This function will need a + valid and up-to-date oui.txt from the IEEE. This value + will be different from the manufacturer string in the + most cases. + + If the oui.txt file is not present or the OUI part of + the BD_ADDR is not listed, it should return the + string "OUI %s" where %s is the actual OUI. + + Example: "Apple Computer" + + Possible errors: org.bluez.Error.Failed + + array{string} ListAvailableModes() + + Returns a list of available modes the adapter can + be switched into. + + string GetMode() + + Returns the current mode of a adapter. + + Valid modes: "off", "connectable", "discoverable", + "limited". + + Possible errors: none + + void SetMode(string mode) + + Sets mode of the adapter. See GetMode for valid strings + for the mode parameter. In addition to the valid strings + for GetMode, this method also supports a special + parameter value "on" which will change the mode to the + previous non-off mode (or do nothing if the current + mode isn't "off"). + + Possible errors: org.bluez.Error.NoSuchAdapter + org.bluez.Error.Failed + + uint32 GetDiscoverableTimeout() + + Returns 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). + + Possible errors: none + + void SetDiscoverableTimeout(uint32 timeout) + + Sets the discoverable timeout in seconds. A value of + zero disables the timeout and the adapter would be + always discoverable/limited. + + Changing this value doesn't set the adapter into + discoverable/limited mode. The SetMode method must be used. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.InvalidArguments + + boolean IsConnectable() + + Returns true if the local adapter is connectable and + false if it is switched off. + + It is also possible to use GetMode to retrieve this + information. + + Possible errors: none + + boolean IsDiscoverable() + + Returns true if the local adapter is discoverable/limited + and false if it is only connectable or switched off. + + It is also possible to use GetMode to retrieve this + information. + + Possible errors: none + + boolean IsConnected(string address) + + Return true if the local adapter is connected to + the remote device. + + Possible errors: org.bluez.Error.InvalidArguments + + array{string} ListConnections() + + Returns a list with addresses of currently connected + remote devices. + + Possible errors: none + + string GetMajorClass() + + Returns the current major class value for this + system. Currently, only "computer" is supported. + For the other values, unsupported major class + error is returned. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.UnsupportedMajorClass + + array{string} ListAvailableMinorClasses() + + Returns a list of available minor classes for the + currently used major class. At the moment this should + only return a list of minor classes if the major + class is set to "computer". + + If the major class is not "computer" an error should + be returned. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.UnsupportedMajorClass + + string GetMinorClass() + + Returns the current minor class value for this + system where the default major class is "computer". + + If the major class is not "computer" an error should + be returned. + + Valid values: "uncategorized", "desktop", "server", + "laptop", "handheld", "palm", "wearable" + + The default value is "uncategorized". + + Possible errors:org.bluez.Error.InvalidArguments + org.bluez.Error.UnsupportedMajorClass + + void SetMinorClass(string minor) + + Sets the local minor class and on success it sends + a MinorClassChanged signal. + + If the major class is not "computer" an error should + be returned. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.InvalidArguments + org.bluez.Error.NoSuchAdapter + org.bluez.Error.Failed + org.bluez.Error.UnsupportedMajorClass + + array{string} GetServiceClasses() + + Returns the current set of service classes. + + In the case no service classes are set (when no + service has been registered) an empty list should + be returned. + + Valid values: "positioning", "networking", "rendering", + "capturing", "object transfer", "audio", + "telephony", "information" + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.NoSuchAdapter + org.bluez.Error.Failed + + string GetName() + + Returns the local adapter name (friendly name) in UTF-8. + + Possible errors: org.bluez.Error.Failed + + void SetName(string name) + + Sets the local adapter name. If EIR is supported by + the local hardware this modifies also the extended + response data value. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.Failed + + Questions: What to do (in case of EIR) if one + low-level API call fails. + + dict GetRemoteInfo(string address) + + Returns the properties for a remote device. + + string GetRemoteVersion(string address) + + Get the version info for a remote device. This request + returns always this information based on its cached + data. The base for this string is the LMP version + value and the features for EDR support. + + Not available can be received if the remote device was + not contacted(connected) previously. Remote data is + automatically retrieved in the first connection. + + Example: "Bluetooth 2.0 + EDR" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteRevision(string address) + + Get the revision of the Bluetooth chip. This is a + vendor specific value and in most cases it represents + the firmware version. This derives only from the LMP + subversion value. + + Example: "HCI 19.2" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteManufacturer(string address) + + Get the manufacturer of the chip for a remote device. + + Example: "Nokia Mobile Phones" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteCompany(string address) + + Get the company name from the OUI database of the + Bluetooth device address. This function will need a + valid and up-to-date oui.txt from the IEEE. This value + will be different from the manufacturer string in the + most cases. + + Example: "Microsoft Corporation" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteMajorClass(string address) + + Get the major device class of the specified device. + + Example: "computer" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteMinorClass(string address) + + Get the minor device class of the specified device. + + Example: "laptop" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + array{string} GetRemoteServiceClasses(string address) + + Get the service classes of the specified device. + + Example: ["networking", "object transfer"] + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + uint32 GetRemoteClass(string address) + + Get the remote major, minor, and service classes + encoded as 32 bit integer. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + array{byte} GetRemoteFeatures(string address) + + Get the remote features encoded as bit mask. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + string GetRemoteName(string address) + + Get the remote device's name. This request returns always + a cached name. The service daemon is responsible for + updating the cache. + + NotAvailable error is returned if the name is not in + the cache. But if there is a discovery running, then + this function will return RequestDeferred. In this + case the service daemon will queue the request and + it will try to resolve the name at the next possible + opportunity. On success a RemoteNameUpdated signal will + be send and if a failure happens it will be indicated by + a RemoteNameFailed signal. + + If this is an empty string, the UI might want to + display the BD_ADDR instead. + + Example: "00:11:22:33:44:55", "Nokia 770" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + org.bluez.Error.NotReady + org.bluez.Error.RequestDeferred + + string GetRemoteAlias(string address) + + Returns alias name for remote device. If this is + an empty string value, the UI should show the + remote name instead. + + An alias should supersede the remote name. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + void SetRemoteAlias(string address, string alias) + + Sets alias name for remote device. If alias name is + empty, then no alias is set. + + On success the SetRemoteAlias method will produce a + RemoteAliasChanged signal which applications can use + to update their current display of the remote device + name. + + Possible errors: org.bluez.Error.Failed + org.bluez.Error.InvalidArguments + + void ClearRemoteAlias(string address) + + Resets alias name for remote device. If there is no + alias set for the device this method will silently + succeed, but no RemoteAliasCleared signal has to be + sent in this case. + + On success the ClearRemoteAlias method will produce + a RemoteAliasCleared signal. + + Possible errors: org.bluez.Error.Failed + org.bluez.Error.InvalidArguments + + string LastSeen(string address) + + Returns the date and time when the adapter has been + seen by a discover procedure. + + Example: "2006-02-08 12:00:00 GMT" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + Question: Can we find a better name? + + string LastUsed(string address) + + Returns the date and time of the last time when the + adapter has been connected. + + Example: "2006-02-08 12:00:00 GMT" + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotAvailable + + Question: Can we find a better name? + + void DisconnectRemoteDevice(string address) + + This method disconnects a specific remote device by + terminating the low-level ACL connection. The use of + this method should be restricted to administrator + use. + + A RemoteDeviceDisconnectRequested signal will be + sent and the actual disconnection will only happen 2 + seconds later. This enables upper-level applications + to terminate their connections gracefully before the + ACL connection is terminated. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.NoSuchAdapter + org.bluez.Error.InvalidArguments + org.bluez.Error.NotConnected + org.bluez.Error.InProgress + + void CreateBonding(string address) + + This method creates a bonding with a remote device. + + If a link key for this adapter already exists, this + procedure should fail instead of trying to create a + new pairing. + + If no connection to the remote device exists, a + low-level ACL connection must be created. + + This function will block and the calling application + should take care of setting are higher timeout. This + might be needed in case of a page timeout from the + low-level HCI commands. + + In case of success it will send a BondingCreated + signal. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InvalidArguments + org.bluez.Error.AlreadyExists + org.bluez.Error.InProgress + org.bluez.Error.NoSuchAdapter + org.bluez.Error.ConnectionAttemptFailed + org.bluez.Error.AuthenticationFailed + org.bluez.Error.AuthenticationTimeout + org.bluez.Error.AuthenticationRejected + org.bluez.Error.AuthenticationCanceled + + void CancelBondingProcess(string address) + + This method will cancel the CreateBonding process. + + The CreateBonding method will return + AuthenticationCanceled to signal that an attempt to + create a bonding has been canceled. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InvalidArguments + org.bluez.Error.NotInProgress + org.bluez.Error.NotAuthorized + + void RemoveBonding(string address) + + This method removes the bonding with a remote device. + + For security reasons this includes removing the actual + link key and also disconnecting any open connections + for the remote device. + + If the link key was stored on the Bluetooth chip, it + must be removed from there, too. + + After deleting the link key this method will send a + BondingRemoved signal. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InvalidArguments + org.bluez.Error.NoSuchAdapter + org.bluez.Error.DoesNotExist + + boolean HasBonding(string address) + + Returns true if the remote device is bonded and false + if no link key is available. + + Possible errors: org.bluez.Error.InvalidArguments + + array{string} ListBondings() + + List device addresses of currently bonded adapter. + + Possible errors: none + + uint8 GetPinCodeLength(string address) + + Returns the PIN code length that was used in the + pairing process. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.DoesNotExist + + uint8 GetEncryptionKeySize(string address) + + Returns the currently used encryption key size. + + This method will fail if no connection to the address + has been established. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.Failed + + void SetTrusted(string address) + + Marks the remote device as trusted. Authorization + request will automatically succeed. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.AlreadyExists + + boolean IsTrusted(string address) + + Returns true if the user is trusted or false otherwise. + The address parameter must match one of the remote + devices of the service. + + Possible errors: org.bluez.Error.InvalidArguments + + void RemoveTrust(string address) + + Marks the remote device as not trusted. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.DoesNotExist + + array{string} ListTrusts() + + Returns a list of remote devices that are trusted. + + void DiscoverDevices() + + This method starts the device discovery procedure. This + includes an inquiry procedure and remote device name + resolving. + + On start up this process will generate a DiscoveryStarted + signal and then return RemoteDeviceFound and also + RemoteNameUpdated signals. If the procedure has been + finished an DiscoveryCompleted signal will be sent. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InProgress + org.bluez.Error.NoSuchAdapter + + void DiscoverDevicesWithoutNameResolving() + + This method starts the device discovery procedure. This + includes an inquiry and an optional remote device name + resolving. The remote names can be retrieved with + GetRemoteName and in the case a name doesn't exist it + will be queued for later resolving and GetRemoteName + will return an error. + + While this procedure is running every found device + will be returned with RemoteDeviceFound. While + DiscoverDevices() automatically resolves unknown + devices names and sends RemoteNameUpdated in this + case it will only happen if GetRemoteName has been + called and no previously stored name is available. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InProgress + org.bluez.Error.NoSuchAdapter + + void CancelDiscovery() + + This method will cancel any previous DiscoverDevices + or DiscoverDevicesWithoutNameResolving actions. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.NotAuthorized + org.bluez.Error.NoSuchAdapter + + void StartPeriodicDiscovery() + + This method starts a periodic discovery. + + Possible errors: org.bluez.error.NotReady + org.bluez.Error.Failed + org.bluez.Error.InProgress + org.bluez.Error.NoSuchAdapter + + void StopPeriodicDiscovery() + + This method stops a periodic discovery. If the + adapter is not in the periodic inquiry mode an + error(not authorized) is returned. Everyone can + request exit from this mode, it is not restricted + to start requestor. + + Possible errors: org.bluez.Error.NotReady + org.bluez.Error.Failed + org.bluez.Error.NotAuthorized + org.bluez.Error.NoSuchAdapter + + boolean IsPeriodicDiscovery() + + Returns true if the periodic inquiry is active and + false if it is switched off. + + Possible errors: none + + void SetPeriodicDiscoveryNameResolving(boolean resolve_names) + + Enable or disable automatic remote name resolving for + periodic discovery. + + Possible errors: org.bluez.Error.InvalidArguments + + boolean GetPeriodicDiscoveryNameResolving() + + Check if automatic remote name resolving is enabled or not + for periodic discovery. + + Possible error: org.bluez.Error.InvalidArguments + + array{uint32} GetRemoteServiceHandles(string address, string match) + + This method will request the SDP database of a remote + device and retrieve the service record handles. To + request service browse send an empty match string. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.InProgress + org.bluez.Error.ConnectionAttemptFailed + org.bluez.Error.Failed + + array{byte} GetRemoteServiceRecord(string address, uint32 handle) + + This method will request the SDP database of a remote + device for a service record and return the binary + stream of it. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.InProgress + org.bluez.Error.Failed + + string GetRemoteServiceRecordAsXML(string address, uint32 handle) + + This method will request the SDP database of a remote + device for a service record and return its data in XML + format. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.InProgress + org.bluez.Error.Failed + + array{string} GetRemoteServiceIdentifiers(string address) + + This method will request the SDP database of a remote + device for all supported services. The identifiers are + returned in UUID 128 string format. + + Possible errors: org.bluez.Error.InProgress + org.bluez.Error.Failed + + void FinishRemoteServiceTransaction(string address) + + This method will finish all SDP transaction for that + given address. In general this call is not needed, + but in cases of resources restricted devices it + is useful to call this to finish the SDP transaction + before proceeded with profile specific connections. + + array{string} ListRemoteDevices() + + List addresses of all known remote devices (bonded, + trusted and used). + + Possible errors: none + + array{string} ListRecentRemoteDevices(string date) + + List addresses of all bonded, trusted, seen or used remote + devices since date. Bonded and trusted devices are always + included(the date informed is not applied). + + date format is "YYYY-MM-DD HH:MM:SS GMT" + + Possible errors: none + +Signals void ModeChanged(string mode) + + If the current mode is changed with SetMode this signal + will inform about the new mode. + + This signal can also be triggered by low-level HCI + commands. + + void DiscoverableTimeoutChanged(uint32 timeout) + + After changing the discoverable timeout this signal + provide the new timeout value. + + void MinorClassChanged(string minor) + + After changing the minor class with SetMinorClass this + signal will provide the new class value. + + void NameChanged(string name) + + After changing the local adapter name with SetName this + signal will provide the new name. + + This signal can also be triggered by low-level HCI + commands. + + void DiscoveryStarted() + + This signal indicates that a device discovery + procedure has been started. + + void DiscoveryCompleted() + + This signal indicates that a device discovery + procedure has been completed. + + void PeriodicDiscoveryStarted() + + This signal indicates that a periodic discovery + procedure has been started. + + void PeriodicDiscoveryStopped() + + This signal indicates that a periodic discovery + procedure has been completed. + + void RemoteDeviceFound(string address, uint32 class, int16 rssi) + + This signal will be send every time an inquiry result + has been found by the service daemon. In general they + only appear during a device discovery. + + void RemoteDeviceDisappeared(string address) + + This signal will be send when an inquiry session for + a periodic discovery finishes and previously found + devices are no longer in range or visible. + + void RemoteClassUpdated(string address, uint32 class) + + This signal will be send every time the remote class + of device has been changed. This happens for example + after a remote connection attempt. This signal will + not be send if the class of device hasn't changed + compared to cached one. + + void RemoteNameUpdated(string address, string name) + + This signal will be send every time the service daemon + detect a new name for a remote device. + + void RemoteIdentifiersUpdated(string address, array{string identifiers}) + + This signal is sent to indicate the provided services of a given + remote device. It will be sent after GetRemoteServiceIdentifiers + calls. This signal has at least one identifier and it does not + contain repeated entries. + + void RemoteNameFailed(string address) + + This signal will be sent every time the service daemon + tries to resolve a remote and this fails. + + void RemoteNameRequested(string address) + + This signal will be sent every time the service daemon + tries to resolve a remote name during discovery. + + void RemoteAliasChanged(string address, string alias) + + After changing an alias with SetRemoteAlias this + signal will indicate the new alias. + + void RemoteAliasCleared(string address) + + After removing an alias with ClearRemoteAlias this + signal will indicate that the alias is no longer + valid. + + void RemoteDeviceConnected(string address) + + This signal will be send if a low level connection + between two devices has been created. + + void RemoteDeviceDisconnectRequested(string address) + + This signal will be sent when a low level + disconnection to a remote device has been requested. + The actual disconnection will happen 2 seconds later. + + void RemoteDeviceDisconnected(string address) + + This signal will be send if a low level connection + between two devices has been terminated. + + void BondingCreated(string address) + + Signals that a successful bonding has been created. + + void BondingRemoved(string address) + + Signals that a bonding was removed. + + void TrustAdded(string address) + + Sent when SetTrusted() is called. + + void TrustRemoved(string address) + + Sent when RemoveTrust() is called. + +Service hierarchy +================= + +Service org.bluez +Interface org.bluez.Service +Object path path from org.bluez.Manager.ListServices() + +Methods dict GetInfo() + + Returns the service properties. + + string GetIdentifier() + + This method returns the service identifier. + + string GetName() + + This method returns the service name. + + string GetDescription() + + This method returns the service description. + + string GetBusName() [experimental] + + Returns the unique bus name of the service if it has + been started. + + Possible errors: org.bluez.Error.NotAvailable + + void Start() + + This method tells the system to start the + service. + + void Stop() + + This method tells the system to stop the + service. + + boolean IsRunning() + + Returns true if the service has been started and + is currently active. Otherwise, it returns false. + + boolean IsExternal() + + Returns true if the service was registered using the + Database.RegisterService method instead of a .service + file. The Start and Stop methods are not applicable to + external services and will return an error. + + array{string} ListTrusts() [experimental] + + Returns a list of remote devices that are trusted + for the service. + + void SetTrusted(string address) [experimental] + + Marks the user as trusted. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.AlreadyExists + + boolean IsTrusted(string address) [experimental] + + Returns true if the user is trusted or false otherwise. + The address parameter must match one of the + current users of the service. + + Possible errors: org.bluez.Error.InvalidArguments + + void RemoveTrust(string address) [experimental] + + Marks the user as not trusted. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.DoesNotExist + +Signals void Started() + + The object path of this signal contains which service + was started. + + void Stopped() + + The object path of this signal contains which service + was stopped. + + void TrustAdded(string address) + + Sent when SetTrusted() is called. + + void TrustRemoved(string address) + + Sent when RemoveTrust() is called. + + +Security hierarchy +================== + +Service org.bluez +Interface org.bluez.Security +Object path /org/bluez or /org/bluez/{hci0,hci1,...} + +Methods void RegisterDefaultPasskeyAgent(string path) + + This registers the default passkey agent. It can + register a passkey for all adapters or for a + specific device depending on with object path has + been used. + + The path parameter defines the object path of the + passkey agent that will be called when a passkey + needs to be entered. + + If an application disconnects from the bus all + registered passkey agent will be removed. + + Possible errors: org.bluez.Error.AlreadyExists + + void UnregisterDefaultPasskeyAgent(string path) + + This unregisters a default passkey agent that has + been previously registered. The object path and + the path parameter must match the same values that + has been used on registration. + + Possible errors: org.bluez.Error.DoesNotExist + + void RegisterPasskeyAgent(string path, string address) + + This registers the application passkey agent that + will be used for any application specific passkey + tasks. + + The path parameter defines the object path of the + passkey agent that will be called when a passkey + needs to be entered. The address defines the remote + device that it will answer passkey requests for. + + If an application disconnects from the bus all + registered passkey agent will be removed. It will + also be unregistered after a timeout and if the + pairing succeeds or fails. The application has to + take care of that it reregisters the passkey agent. + + Possible errors: org.bluez.Error.AlreadyExists + + void UnregisterPasskeyAgent(string path, string address) + + This unregisters a passkey agent that has been + previously registered. The object path and the path + and address parameter must match the same values + that has been used on registration. + + The method is actually only needed if an application + wants to removed the passkey agent and don't wanna + wait for the automatic timeout. + + Possible errors: org.bluez.Error.DoesNotExist + + void RegisterDefaultAuthorizationAgent(string path) + + This registers the default authorization agent. It can + register an authorization agent for all adapters or + for a specific one depending on which object path has + been used. + + The path parameter defines the object path of the + authorization agent that will be called when an + authorization request needs to be answered. + + void UnregisterDefaultAuthorizationAgent(string path) + + This unregisters a default authorization agent that has + been previously registered. The path parameter must + match the same value that has been used on + registration. + + +PasskeyAgent hierarchy +====================== + +Service unique name +Interface org.bluez.PasskeyAgent +Object path freely definable + +Methods string Request(string path, string address) + + This method gets called when the service daemon + needs to get the passkey for an authentication. The + return value is actual passkey. It is a 1 to 16 + byte PIN code in UTF-8 format. + + The first argument contains the path of the local + adapter and the second one the remote address. + + Possible errors: org.bluez.Error.Rejected + org.bluez.Error.Canceled + + void Cancel(string path, string address) + + This method gets called to indicate that the + authentication request failed before a reply was + returned by the Request method. + + void Release() + + This method gets called when the service daemon + unregisters a passkey agent. An agent can use + it to do cleanup tasks. There is no need to + unregister the agent, because when this method + gets called it has already been unregistered. + + +AuthorizationAgent hierarchy (experimental) +=========================================== + +Service unique name +Interface org.bluez.AuthorizationAgent +Object path freely definable + +Methods void Authorize(string adapter_path, string address, + string service_path, string uuid) + + This method gets called when the service daemon wants + to get an authorization for accessing a service. This + method should return if the remote user is granted + access or an error otherwise. + + The adapter_path parameter is the object path of the + local adapter. The address, service_path and action + parameters correspond to the remote device address, + the object path of the service and the uuid of the + profile. + + Possible errors: org.bluez.Error.Rejected + org.bluez.Error.Canceled + + void Cancel(string adapter_path, string address, + string service_path, string uuid) + + This method cancels a previous authorization request. + The adapter_path, address, service_path and uuid + parameters must match the same values that have been + used when the Authorize() method was called. + + void Release() + + This method gets called when the service daemon + unregisters an authorization agent. An agent can + use it to do cleanup tasks. There is no need to + unregister the agent, because when this method + gets called it has already been unregistered. |