Modern Android releases deliver contextual ambient intelligence across the operating system. When a user highlights an address, phone number, tracking number, or URL, the context menu immediately offers smart action chips (such as “Open in Maps”, “Call”, or “Open in Chrome”) through Smart Text Selection. Similarly, in the Recents / Overview multitasking screen, users can select and copy text or images directly from floating app previews without switching into the foreground app. These intelligent features are governed by the Android Content Suggestions Service (introduced in Android 10 / API 29). Using the Android Debug Bridge (ADB), developers and privacy engineers can query dumpsys content_suggestions to audit the active suggestion provider, review classification requests, and verify on-device contextual AI pipeline health.
Understanding Android Content Suggestions Architecture
The Content Suggestions service operates as an isolated on-device framework coordinating with Android’s Private Compute Core:
- System Service Boundary: The central service (
content_suggestions) acts as a secure broker between user-facing system UI components (such as SystemUI, Launcher, and TextClassifier) and the underlying intelligence engine. - Private Compute Service / Device Personalization: The default implementation is powered by system packages such as
com.google.android.as(Device Personalization Services). All natural language processing, entity recognition, and optical character recognition (OCR) occur strictly on-device without exfiltrating screen contents to remote cloud servers. - View Structure Extraction: When the Overview screen is triggered or text is selected, the framework extracts a lightweight structural representation (AssistStructure) of the visible UI elements to perform semantic classification.
- Contextual Action Generation: Matches detected entities (dates, flights, physical locations, OTP codes) against installed application intent filters to generate relevant action chips.
Connecting via ADB and Querying content_suggestions
Ensure that USB debugging is active under Developer Options on your target Android device. Connect your terminal and query the service dump:
# Check active ADB connections
adb devices
# Execute the content_suggestions service dump
adb shell dumpsys content_suggestions
The command returns the operational state of the service, bound intelligence providers, and recent interaction sessions.
Auditing Active Service Providers and Package Bindings
Inspect the top section of the service dump to identify which system package handles content classification:
# Filter output to inspect the bound content suggestion provider
adb shell dumpsys content_suggestions | grep -i -A 10 "service"
Key attributes detailed in the dump include:
- Bound Service Component: The active service handling classifications (e.g.,
com.google.android.as/com.google.android.apps.miphone.aiai.common.suggestions.service.AiAiContentSuggestionsService). - Service Status: Confirms whether the background service is actively bound (
connected=true) or idle. - User ID: The active Android user profile (e.g., User
0for primary profile or User10for managed enterprise work profile).
Inspecting Classification Sessions and Request Latency
To verify how quickly the machine learning pipeline classifies text and generates actions during user interactions, examine the session history:
# Extract recent suggestion sessions and performance metrics
adb shell dumpsys content_suggestions | grep -A 15 "Sessions:"
Each session record logs:
- Session ID: Unique tracking integer assigned to the user action.
- Calling UID: The process identifier that requested suggestions (typically SystemUI or Launcher).
- Classification Latency: Milliseconds elapsed between user text highlight and action chip rendering (typically 15ms to 45ms on modern hardware).
- Result Count: The number of smart actions generated for the detected text entity.
Testing Smart Text Selection in Application Views
When developing mobile applications, poorly configured custom text views or canvas elements can inadvertently break Android’s ability to extract text structures. To test whether an app properly exposes text entities to the Content Suggestions service:
- Launch your application and display a view containing test entities (e.g., a phone number
+1-415-555-0199or address). - Highlight the text in the app view while monitoring logcat:
# Monitor TextClassifier and ContentSuggestions events in real time
adb logcat -s ContentSuggestions:V TextClassifier:I
- Logcat confirms whether the entity was recognized:
TextClassifier: Generated action: [android.intent.action.DIAL] for entity:
ContentSuggestions: Dispatching smart chip to SystemUI
If no action appears, ensure the custom view does not override onProvideStructure() or block accessibility view hierarchies.
Managing Content Suggestions via ADB Shell
During automated testing or privacy benchmarking, developers can toggle or inspect the service using the cmd tool:
# List available content_suggestions service subcommands
adb shell cmd content_suggestions -h
# Check if content suggestions are globally enabled
adb shell cmd content_suggestions is-enabled 0
If an organization requires disabling smart suggestions across managed devices for strict data privacy policies, the feature can be suppressed via device policy or by setting the system provider handle to null.
Auditing adb shell dumpsys content_suggestions provides developers and security researchers with complete visibility into on-device contextual AI, ensuring that smart selections remain fast, reliable, and privacy-preserving.