App Functions and the Android 16 DP1 Musings

The good news is: the API differences report that was broken when I wrote about Android 16 DP1 yesterday has been repaired! As a result, we get access to insights like this from the docs for AppFunctionService:

Abstract base class to provide app functions to the system

…and this in the docs for AppFunctionManager:

Provides app functions related functionalities.

App function is a specific piece of functionality that an app offers to the system. These functionalities can be integrated into various system features.

🙄

While the rest of the documentation on “app functions” is sparse, some of my guesses were accurate. App functions are tied into app search, as the object representing a specific function request points to a GenericDocument from the app search area. And, developers should be able to create subclasses of AppFunctionService to handle app function requests. This is a bound service, defended by BIND_APP_FUNCTION_SERVICE so that only a system process can bind to it.

There is mention of an “App Functions SDK”:

In most cases this identifier should come from the ID automatically generated by the AppFunctions SDK

There is also mention of EXECUTE_APP_FUNCTIONS_TRUSTED and EXECUTE_APP_FUNCTIONS that are not in the Android SDK yet. With luck, these point to future areas with more information about what this is all about.