@IntRange(from = 0)
	protected int getServiceDiscoveryDelay(final boolean bonded) {
		return bonded ? 1600 : 300;
	}
The onConnectionStateChange event is triggered just after the Android connects to a device.
In case of bonded devices, the encryption is reestablished AFTER this callback is called.
Moreover, when the device has Service Changed indication enabled, and the list of services
has changed (e.g. using the DFU), the indication is received few hundred milliseconds later,
depending on the connection interval.
When received, Android will start performing a service discovery operation, internally,
and will NOT notify the app that services has changed.
<p>
If the gatt.discoverServices() method would be invoked here with no delay, if would return
cached services, as the SC indication wouldn't be received yet. Therefore, we have to
postpone the service discovery operation until we are (almost, as there is no such callback)
sure, that it has been handled. It should be greater than the time from
LLCP Feature Exchange to ATT Write for Service Change indication.
<p>
If your device does not use Service Change indication (for example does not have DFU)
the delay may be 0.
<p>
Please calculate the proper delay that will work in your solution.
<p>
For devices that are not bonded, but support pairing, a small delay is required on some
older Android versions (Nexus 4 with Android 5.1.1) when the device will send pairing
request just after connection. If so, we want to wait with the service discovery until
bonding is complete.
<p>
The default this implementation returns 1600 ms for bonded and 300 ms when the device is not
bonded to be compatible with older versions of the library.
ble/src/main/java/no/nordicsemi/android/ble/BleManager.java