ConnectableDeviceListener allows for a class to receive messages about ConnectableDevice connection, disconnect, and update events.

It also serves as a proxy for message handling when connecting and pairing with each of a ConnectableDevice’s DeviceServices. Each of the DeviceService proxy methods are optional and would only be useful in a few use cases.

  • providing your own UI for the pairing process.
  • interacting directly and exclusively with a single type of DeviceService


void onDeviceReady (ConnectableDevice device)

A ConnectableDevice sends out a ready message when all of its connectable DeviceServices have been connected and are ready to receive commands.


  • device – ConnectableDevice that is ready for commands.
void onDeviceDisconnected (ConnectableDevice device)

When all of a ConnectableDevice’s DeviceServices have become disconnected, the disconnected message is sent.


  • device – ConnectableDevice that has been disconnected.
void onPairingRequired (ConnectableDevice device, DeviceService service, PairingType pairingType)

DeviceService listener proxy method.

This method is called when a DeviceService tries to connect and finds out that it requires pairing information from the user.


  • device – ConnectableDevice containing the DeviceService
  • service – DeviceService that requires pairing
  • pairingType – DeviceServicePairingType that the DeviceService requires
void onCapabilityUpdated (ConnectableDevice device, List<String> added, List<String> removed)

When a ConnectableDevice finds & loses DeviceServices, that ConnectableDevice will experience a change in its collective capabilities list. When such a change occurs, this message will be sent with arrays of capabilities that were added & removed.

This message will allow you to decide when to stop/start interacting with a ConnectableDevice, based off of its supported capabilities.


  • device – ConnectableDevice that has experienced a change in capabilities
  • added – List<String> of capabilities that are new to the ConnectableDevice
  • removed – List<String> of capabilities that the ConnectableDevice has lost
void onConnectionFailed (ConnectableDevice device, ServiceCommandError error)

This method is called when the connection to the ConnectableDevice has failed.


  • device – ConnectableDevice that has failed to connect
  • error – ServiceCommandError with a description of the failure