# androidx.appfunctions

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionAccessLevel` | Defines the caller access level of an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionDeclaration` | Marks a function under `https://developer.android.com/reference/androidx/appfunctions/AppFunctionServiceEntryPoint` as callable by other applications. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionInstruction` | Provides an explicit instruction for an `https://developer.android.com/reference/androidx/appfunctions/AppFunctionDeclaration`, an `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSignature`, or an `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSerializable` and their respective components. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionIntValueConstraint` | Specifies constraints applied on the integer values for return types, parameters, or properties in app functions. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionPatternMatcher` | Declares a `https://developer.android.com/reference/android/os/PatternMatcher.html` that string values can match, used in `https://developer.android.com/reference/androidx/appfunctions/AppFunctionStringValueConstraint#patternMatchers()`. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSchemaDefinition` | Marks an interface as a pre-defined schema for an App Function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSerializable` | Annotates a class to indicate that it can be serialized and transferred between processes using AppFunction. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionServiceEntryPoint` | Annotation to mark `https://developer.android.com/reference/androidx/appfunctions/AppFunctionService` as an entry point. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSignature` | Marks a functional interface as an AppFunction signature for runtime registration using `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#handleAppFunction(kotlin.String,androidx.appfunctions.SuspendingAppFunction)` or `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#handleAppFunctions(kotlin.collections.List)`. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionStringValueConstraint` | Specifies constraints applied on the string values for return types, parameters, or properties in app functions. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionUriValueConstraint` | Specifies constraints applied on `https://developer.android.com/reference/android/net/Uri.html` values for parameters, return types, or properties in app functions. |
| `https://developer.android.com/reference/androidx/appfunctions/ExperimentalAppFunctionsApi` | Marks declarations that are **experimental** in the AppFunctions APIs. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/appfunctions/AppFunction` | An interface for implementing the logic of an app function registered at runtime using `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#registerAppFunction(kotlin.String,java.util.concurrent.Executor,androidx.appfunctions.AppFunction)`. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionResourceContainer` | Represents resources embedded within a class annotated with `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSerializable`. |
| `https://developer.android.com/reference/androidx/appfunctions/ExecuteAppFunctionResponse` | Represents a response of an execution of an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/HandleAppFunctionRequestAdapter` | An adapter for an interface annotated with `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSignature`. |
| `https://developer.android.com/reference/androidx/appfunctions/SuspendingAppFunction` | An implementation of an app function that supports suspend execution. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionActivityState` | The state of an activity from the perspective of app functions, retrieved using `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#getAppFunctionActivityStates(kotlin.collections.Set)`. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionData` | A data class to contain information to be communicated between AppFunctions apps and agents. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionData.Builder` | Builder for constructing `https://developer.android.com/reference/androidx/appfunctions/AppFunctionData` |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager` | Provides access to interact with App Functions. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionName` | Globally unique identifier for an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSearchSpec` | Defines the specifications for filtering and searching app function snapshots. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionService` | Abstract base class to provide app functions to the system. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionState` | Runtime state of an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionTextResource` | Represents a text resource in an app function's response/parameters. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionUriGrant` | Represents a `https://developer.android.com/reference/android/net/Uri.html` for which temporary access permission is to be granted to the caller of an AppFunction execution. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionsChangeEvent` | Represents a change event in the registered app functions observed by `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#observeAppFunctions()`. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionsChangeEvent.MetadataChanged` | Triggered when changes occur to a package exposing app functions that may impact the state or metadata of its contained functions. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionsChangeEvent.StatesChanged` | Triggered when the runtime state of one or more app functions changes. |
| `https://developer.android.com/reference/androidx/appfunctions/ExecuteAppFunctionRequest` | Represents a request to execute a specific app function. |
| `https://developer.android.com/reference/androidx/appfunctions/ExecuteAppFunctionResponse.Error` | Represents a failed execution of an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/ExecuteAppFunctionResponse.Success` | Represents a successful execution of an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/ExtensionsAppFunctionService` | Abstract base class to provide app functions to the system for `https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#UPSIDE_DOWN_CAKE` through `https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BAKLAVA` (inclusive), if the AppFunctions extensions library is available on the device. |
| `https://developer.android.com/reference/androidx/appfunctions/HandleAppFunctionRequest` | A request to register a `https://developer.android.com/reference/androidx/appfunctions/SuspendingAppFunction` implementation, provided to `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#handleAppFunction(kotlin.String,androidx.appfunctions.SuspendingAppFunction)`. |
| `https://developer.android.com/reference/androidx/appfunctions/R` |   |
| `https://developer.android.com/reference/androidx/appfunctions/R.attr` |   |
| `https://developer.android.com/reference/androidx/appfunctions/RegisterAppFunctionRequest` | A request to register an `https://developer.android.com/reference/androidx/appfunctions/AppFunction` implementation, provided to `https://developer.android.com/reference/androidx/appfunctions/AppFunctionManager#registerAppFunctions(kotlin.collections.List)`. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionAppException` | Thrown when an error is caused by the app providing the function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionAppUnknownException` | Thrown when an unknown error occurred while processing the call in the AppFunctionService. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionCancelledException` | Thrown when an operation was cancelled. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionDeniedException` | Thrown when the caller does not have the permission to execute an app function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionDisabledException` | Thrown when the caller tried to execute a disabled app function. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionElementAlreadyExistsException` | Thrown when the caller tried to create a resource/entity that already exists or has conflicts with existing resource/entity. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionElementNotFoundException` | Thrown when the caller tried to request a resource/entity that does not exist. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionException` | An exception that is thrown when an error occurs during an app function execution. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionFunctionNotFoundException` | Thrown when the caller tries to execute a function that does not exist. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionInvalidArgumentException` | Thrown when the caller supplied invalid arguments to `https://developer.android.com/reference/androidx/appfunctions/ExecuteAppFunctionRequest`'s parameters. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionLimitExceededException` | Thrown when the caller exceeded the allowed request rate. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionNotSupportedException` | Thrown when an app receives a request to perform an unsupported action. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionPermissionRequiredException` | Thrown when the app lacks the necessary permission to fulfill the request. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionRequestException` | Thrown when the error is caused by the app requesting a function execution. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSystemException` | Thrown when an internal unexpected error comes from the system. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionSystemUnknownException` | Thrown when an internal unexpected error comes from the system. |
| `https://developer.android.com/reference/androidx/appfunctions/AppFunctionUnknownException` | Thrown when an unknown error has occurred. |