Skip to content

Android 17 AppFunctions & System Gemini Assistant

Exposing structured app capabilities to the system Gemini assistant via useAppFunctions.


Starting with Android 17 (API 37), Google introduced the AppFunctions architecture (android.app.appsearch.AppFunctionManager). AppFunctions replaces legacy App Actions and static Shortcuts with a dynamic, schema-driven framework that lets AI agents (such as the system-level Gemini Assistant) discover, invoke, and inspect app functionalities at runtime.

The useAppFunctions hook provides full lifecycle management for registering and executing on-device functions.

import React from 'react';
import { View, Text, TouchableOpacity } from 'react-native';
import { useAppFunctions } from '@pixelkit-labs/sdk';
export function AssistantFunctionsList() {
const { isSupported, isAvailable, functions, executeFunction } = useAppFunctions();
return (
<View>
<Text>AppFunctions Supported: {isSupported ? 'Yes' : 'No'}</Text>
<Text>System Service Available: {isAvailable ? 'Yes' : 'No'}</Text>
{functions.map((fn) => (
<View key={fn.id}>
<Text style={{ fontWeight: 'bold' }}>{fn.name} ({fn.category})</Text>
<Text>{fn.description}</Text>
<TouchableOpacity
onPress={async () => {
const result = await executeFunction(fn.id, {});
console.log('Execution result:', result);
}}
>
<Text>Test Execute</Text>
</TouchableOpacity>
</View>
))}
</View>
);
}

How the assistant reaches your app A workflow diagram generated by Archify. 01 / Agent 02 / Android 17 03 / Your app Gemini assistant · or another AI agent · Agent Gemini assistant or another AI agent AppFunctionManager · EXECUTE_APP_FUNCTIONS · Android 17 AppFunctionManager EXECUTE_APP_FUNCTIONS AppSearch registry · declared schemas · Android 17 AppSearch registry declared schemas useAppFunctions · your handlers · Your app useAppFunctions your handlers discover result, within 5s AppFunctionService IPC Legend User UI Agent logic Policy External system

  1. System Assistant Verification: Only authorized system assistant packages holding the EXECUTE_APP_FUNCTIONS signature permission can invoke registered AppFunctions.
  2. Parameter Validation: Input and output arguments are strictly validated against the declared JSON Schema before execution begins.
  3. Execution Timeouts: Invocations enforce a default 5-second deadline to ensure assistant responsiveness.