| BlueZ D-Bus LE Advertising API Description |
| ****************************************** |
| |
| Advertising packets are structured data which is broadcast on the LE Advertising |
| channels and available for all devices in range. Because of the limited space |
| available in LE Advertising packets (31 bytes), each packet's contents must be |
| carefully controlled. |
| |
| BlueZ acts as a store for the Advertisement Data which is meant to be sent. |
| It constructs the correct Advertisement Data from the structured |
| data and configured the kernel to send the correct advertisement. |
| |
| Advertisement Data objects are registered freely and then referenced by BlueZ |
| when constructing the data sent to the kernel. |
| |
| LE Advertisement Data hierarchy |
| =============================== |
| |
| Specifies the Advertisement Data to be broadcast and some advertising |
| parameters. Properties which are not present will not be included in the |
| data. Required advertisement data types will always be included. |
| All UUIDs are 128-bit versions in the API, and 16 or 32-bit |
| versions of the same UUID will be used in the advertising data as appropriate. |
| |
| Service org.bluez |
| Interface org.bluez.LEAdvertisement1 |
| Object path freely definable |
| |
| Methods void Release() [noreply] |
| |
| This method gets called when the service daemon |
| removes the Advertisement. A client can use it to do |
| cleanup tasks. There is no need to call |
| UnregisterAdvertisement because when this method gets |
| called it has already been unregistered. |
| |
| Properties string Type |
| |
| Determines the type of advertising packet requested. |
| |
| Possible values: "broadcast" or "peripheral" |
| |
| array{string} ServiceUUIDs |
| |
| List of UUIDs to include in the "Service UUID" field of |
| the Advertising Data. |
| |
| dict ManufacturerData |
| |
| Manufactuer Data fields to include in |
| the Advertising Data. Keys are the Manufacturer ID |
| to associate with the data. |
| |
| array{string} SolicitUUIDs |
| |
| Array of UUIDs to include in "Service Solicitation" |
| Advertisement Data. |
| |
| dict ServiceData |
| |
| Service Data elements to include. The keys are the |
| UUID to associate with the data. |
| |
| bool IncludeTxPower |
| |
| Includes the Tx Power in the advertising packet. |
| If missing, the Tx Power is not included. |
| |
| |
| LE Advertising Manager hierarchy |
| ================================ |
| |
| The Advertising Manager allows external applications to register Advertisement |
| Data which should be broadcast to devices. Advertisement Data elements must |
| follow the API for LE Advertisement Data described above. |
| |
| Service org.bluez |
| Interface org.bluez.LEAdvertisingManager1 [Experimental] |
| Object path /org/bluez/{hci0,hci1,...} |
| |
| Methods RegisterAdvertisement(object advertisement, dict options) |
| |
| Registers an advertisement object to be sent over the LE |
| Advertising channel. The service must be exported |
| under interface LEAdvertisement1. InvalidArguments |
| indicates that the object has invalid or conflicting |
| properties. InvalidLength indicates that the data |
| provided generates a data packet which is too long. |
| The properties of this object are parser when it is |
| registered, and any changes are ignored. |
| Currently only one advertisement at a time is supported, |
| attempting to register two advertisements will result in |
| an AlreadyExists error. |
| |
| Possible errors: org.bluez.Error.InvalidArguments |
| org.bluez.Error.AlreadyExists |
| org.bluez.Error.InvalidLength |
| |
| UnregisterAdvertisement(object advertisement) |
| |
| This unregisters an advertisement that has been |
| prevously registered. The object path parameter must |
| match the same value that has been used on registration. |
| |
| Possible errors: org.bluez.Error.InvalidArguments |
| org.bluez.Error.DoesNotExist |