Invoking this method is equivalent to running [Is Feature Enabled](🔗) for each feature in the datafile sequentially.
This method takes into account the user `attributes
` passed in, to determine if the user is part of the audience that qualifies for the experiment.
## Version
SDK v3.0 and higher
## Description
This method iterates through all feature flags and for each feature flag invokes [Is Feature Enabled](🔗). If a feature is enabled, this method adds the feature’s key to the return list.
## Parameters
The table below lists the required and optional parameters in Android.
Parameter | Type | Description |
**userId** _required_ | string | The ID of the user to check. |
**Attributes** _optional_ | map | A map of custom key-value string pairs specifying attributes for the user that are used for audience targeting. Non-string values are only supported in the 3.0 SDK and above. |
## Returns
A list of keys corresponding to the features that are enabled for the user, or an empty list if no features could be found for the specified user.
## Examples
This section shows a simple example of how you can use the method.
## Exceptions
None.
## Source files
The language/platform source files containing the implementation for Android is [OptimizelyClient.java](🔗).