Perform a Generic Attribute (GATT) call to retrieve the list of descriptors for a provided characteristic.


#include <btapi/btgatt.h>
int bt_gatt_descriptors(int instance, const bt_gatt_characteristic_t *characteristic, bt_gatt_descriptor_t *descriptors, uint16_t size)


BlackBerry 10.0.0



The identifier used to reference the connected primary service.


The characteristic for which descriptors are retrieved.


An array of descriptors to be populated if the function completes successfully.


The size of the array passed to the function.


libbtapi (For the qcc command, use the -l btapi option to link against this library)


The descriptor provides a list of services. For the characteristic argument, if you provide a handle of 0x0000, then the first characteristic that matches the universally unique identifier (UUID) will be discovered.


The number of descriptors retrieved when the function is successfully completed, -1 with the errno set otherwise. The error codes that can be returned are as follows:
  • EACCESS: Insufficient authentication or authorization.
  • EBUSY: The stack was busy performing another operation. You can try again later.
  • EDEADLK: A potential deadlock has been avoided.
  • EINVAL: The arguments passed are invalid or the connection to the remote Bluetooth-enabled device is unavailable.
  • ENODEV: Unable to find the service connection defined by the instance argument.
  • ENOMEM: Insufficient memory to perform the request.
  • ENOSYS: The operation failed at the stack level.
  • EPROTO: The operation failed because the response from remote Bluetooth-enabled device had a protocol error.
  • ESRCH: The service connection was not available.
  • ESRVRFAULT: An internal error has occurred.

Last modified: 2014-05-14

Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus