private boolean ensureServiceChangedEnabled() {
		final BluetoothGatt gatt = bluetoothGatt;
		if (gatt == null || !connected)
			return false;

		// The Service Changed indications have sense only on bonded devices.
		final BluetoothDevice device = gatt.getDevice();
		if (device.getBondState() != BluetoothDevice.BOND_BONDED)
			return false;

		final BluetoothGattService gaService = gatt.getService(BleManager.GENERIC_ATTRIBUTE_SERVICE);
		if (gaService == null)
			return false;

		final BluetoothGattCharacteristic scCharacteristic =
				gaService.getCharacteristic(BleManager.SERVICE_CHANGED_CHARACTERISTIC);
		if (scCharacteristic == null)
			return false;

		log(Log.INFO, () -> "Service Changed characteristic found on a bonded device");
		return internalEnableIndications(scCharacteristic);
	}
When the device is bonded and has the Generic Attribute service and the Service Changed
characteristic this method enables indications on this characteristic.
In case one of the requirements is not fulfilled this method returns <code>false</code>.

@return <code>true</code> when the request has been sent, <code>false</code> when the device
is not bonded, does not have the Generic Attribute service, the GA service does not have
the Service Changed characteristic or this characteristic does not have the CCCD.
ble/src/main/java/no/nordicsemi/android/ble/BleManagerHandler.java