android-for-cars-parked-apps
Adapt existing Android video streaming apps, games, and web browsers
Install / Use
npx skills add android/skills --skill android-for-cars-parked-appsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
OtherSupported Platforms
Our assessment of android-for-cars-parked-apps
android-for-cars-parked-apps scores 92/100 on our quality scale, 36th of 260 Other skills we index (top 14%).
Its SKILL.md is 17 KB long, well organised into 20 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
With 7,514 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 27 days ago, so android-for-cars-parked-apps is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
android-for-cars-parked-apps compared with similar skills
All 4 of these similar skills score higher than android-for-cars-parked-apps; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| android-for-cars-parked-apps (this skill)by android | 92 | 7.5k | 27d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 28d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 28d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 137.2k | 6d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 137.2k | 6d ago | SKILL.md |
Frequently asked questions
- How do I install android-for-cars-parked-apps?
- Run
npx skills add android/skills --skill android-for-cars-parked-apps. The install tabs above show the steps for each supported agent. - Which AI agents does android-for-cars-parked-apps work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is android-for-cars-parked-apps safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is android-for-cars-parked-apps still maintained?
- The repository was last updated 27 days ago, so android-for-cars-parked-apps is actively maintained.
Skill content
View source on GitHubname: android-for-cars-parked-apps description: Adapt existing Android video streaming apps, games, and web browsers to run as parked apps on Android Auto and Android Automotive OS. Covers manifest configuration, Google Play hardware feature declarations, compatibility mode, back navigation affordances, orientation and display continuity, controllable system bar insets, irregular display cutouts, driver distraction lifecycle handling, MediaSession playback restrictions with CarUxRestrictionsManager, background audio while driving, and browser sensitive data protection. Use this skill when migrating, building, or auditing parked apps for cars to meet Car App Quality guidelines. Don't use for media audio apps, templated Car App Library navigation, point of interest, internet of things, weather, or communication apps designed for use while driving. license: Complete terms in LICENSE.txt metadata: author: Google LLC last-updated: '2026-10-09' keywords:
- Android Auto
- Android Automotive OS
- parked apps
- video
- games
- browsers
- adaptive
Adapt existing Android video apps, games, and web browsers to run as parked apps on Android Auto and Android Automotive OS. Follow these steps to meet the car app quality guidelines for Google Play distribution.
Prerequisites
- Begin with an existing adaptive Android app in one of the supported parked app categories: video streaming apps, games, or web browsers.
Glossary
- Parked apps: Parked apps run on Android Auto and Android Automotive OS only while the vehicle is parked. The three parked categories are video, games, and browsers; other categories can't be published as parked apps.
- Android Auto: Android Auto is a phone-powered projection system. Apps execute on the user's phone and are projected to the in-car display over a wired or wireless connection. Android Auto is a separate platform from Android Automotive OS.
- Android Automotive OS: Android Automotive OS, or AAOS, is a variant of Android that runs directly on the vehicle itself. Android Automotive OS is a separate platform from Android Auto.
- Video category: Video apps display streaming videos while parked. Generally available on Android Automotive OS; unsupported on Android Auto.
- Games category: Game apps provide gameplay while parked. Generally available on Android Automotive OS and Android Auto.
- Browsers category: Web browsers let users browse the web while parked. Available in beta on Android Automotive OS; unsupported on Android Auto.
- Media category: Not a parked category. Media apps play audio content (music, radio, audiobooks, excluding video) while driving or parked.
- Android for Cars platform: Android for Cars is an umbrella term that consists of Android Auto and Android Automotive OS.
- Generally available categories: Permitted on internal testing, closed testing, open testing, and production Google Play tracks for a supported platform.
- Beta categories: Permitted on internal or closed testing tracks; open testing and production tracks require acceptance into an early access program.
- Audio while driving: A beta feature on Android Automotive OS that lets video apps play audio while the vehicle is in motion.
- Car app quality guidelines : When auditing an app against the Tier 3 (Car ready ), Tier 2 (Car optimized ), or Tier 1 (Car differentiated ) criteria, MUST check car app quality guidelines.
- Android Automotive OS compatibility mode : Compatibility mode (
android.software.car.display_compatibility) is a system feature on select vehicles providing a system back affordance, safe area rendering, density scaling, and opaque driving-mode blocking (moving activities to Stopped). Compatibility mode is only relevant to apps that support Android Automotive OS; it isn't relevant for apps that only support Android Auto.
Codebase exploration
Search the codebase for AndroidManifest.xml (or create
Assets/Plugins/Android/AndroidManifest.xml in Unity projects),
res/xml/automotive_app_desc.xml, build.gradle, build.gradle.kts,
or gradle/libs.versions.toml files. Locate existing video players,
MediaSession classes, requestedOrientation calls, and WindowInsets
handlers. Unless instructed otherwise by the user, ask permission before adding
dependencies.
Step 1: Configure the app manifest
Declare the app category, target platforms, hardware feature requirements, and
activity configuration in AndroidManifest.xml.
1.1: Identify the app category
- Video apps : Video apps MUST set
android:appCategory="video"on<application>and MUST NOT includeapp/src/main/res/xml/automotive_app_desc.xmlwithuses name="video". - Games : Games MUST set
android:appCategory="game"on<application>. Declareandroid.hardware.gamepadwithandroid:required="false"if controller input is supported by the app. - Browsers : Browsers MUST include
<category android:name="android.intent.category.APP_BROWSER"/>in theMAIN<intent-filter>of an exported<activity>(android:exported="true").
1.2: Identify target platforms and hardware features
- Android Auto : Apps targeting Android Auto (Android 15+) MUST add
<category android:name="android.intent.category.CAR_LAUNCHER"/>to an<intent-filter>in theAndroidManifest.xmlfile. Add it to theMAIN<intent-filter>unless the user specifies a different intent filter. NEVER add this category if the app is solely targeting Android Automotive OS. - Android Automotive OS : Apps targeting Android Automotive OS MUST declare
<uses-feature android:name="android.hardware.type.automotive" android:required="false"/>("false"for mobile or multi-form-factor tracks;"true"only if the app will be published on the dedicated Automotive OS track) in theAndroidManifest.xmlfile. NEVER add this feature tag if the app is solely targeting Android Auto. - Unrequired hardware features (
DO-1) : To satisfy Google Play feature requirements andDO-1, declare unsupported features (android.hardware.wifi,android.hardware.screen.portrait,android.hardware.screen.landscape,android.hardware.camera) withandroid:required="false", and removeandroid:required="true"on features absent in cars. - Display continuity (
LS-C1) : Configureandroid:configChangesforscreenSize,smallestScreenSize,orientation,screenLayout, anddensityon<activity>so moving to or from a distant display does not recreate the activity or stutter playback. - Compatibility mode and distraction : Declaring compatibility mode is optional and is only relevant for apps that support Android Automotive OS. NEVER add compatibility mode for apps that only support Android Auto. Adding
android.hardware.type.automotivedisables compatibility mode unless<meta-data android:name="android.software.car.display_compatibility" android:value="true"/>is added to<application>. When an app declaresandroid.software.car.display_compatibilityinAndroidManifest.xml, the app MUST checkPackageManager.hasSystemFeature("android.software.car.display_compatibility")at runtime and hide duplicate in-app back or close affordances when it returnstrue. Parked apps MUST NOT include<meta-data android:name="distractionOptimized" android:value="true"/>on any<activity>(DD-2,DD-3).
Step 2: Provide back navigation and orientation support
2.1: Add in-app back and close affordances
Android Automotive OS vehicles aren't required to have a hardware or software
back button or gesture navigation (AN-1). Provide explicit UI back and close
controls on every non-root screen, including detail screens and full-screen
players:
- If
AndroidManifest.xmldoes not declareandroid.software.car.display_compatibility: Display explicit in-app back and close controls unconditionally. - If
AndroidManifest.xmldeclaresandroid.software.car.display_compatibilitywithandroid:value="true": Show in-app back and close controls only whenPackageManager.hasSystemFeature("android.software.car.display_compatibility")returnsfalse.
2.2: Guard runtime orientation requests
Vehicle displays have fixed orientations. Requesting landscape on a
fixed-portrait car display causes letterboxing or flickering loops (DO-1).
Remove hardcoded android:screenOrientation manifest attributes and check
PackageManager.FEATURE_SCREEN_LANDSCAPE and
PackageManager.FEATURE_SCREEN_PORTRAIT before setting requestedOrientation.
Step 3: Adapt to system bars and irregular display cutouts
3.1: Track controllable system bar insets
On Android Automotive OS, OEMs are permitted to lock system bars visible so
climate and vehicle controls remain accessible (AR-1). Track controllable
insets with OnControllableInsetsChangedListener, hide only controllable bars,
and apply windowInsetsPadding for uncontrollable statusBars,
navigationBars, and displayCutout insets.
3.2: Render into irregular display cutouts safely
To meet Tier 1 criterion AR-2 on curved or non-rectangular car displays,
NEVER use LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT (0) or
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES (1). Configure
LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS (3) or
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER (2) using the car resource qualifier
in res/values-car-v30/integers.xml:
<integer name="windowLayoutInDisplayCutoutMode">3</integer>
<br />
Protect interactive UI, app bars, and scrollable lists with
WindowInsets.safeDrawing.
Step 4: Meet driver distraction and media playback requirements
4.1: Pause playback on lifecycle transitions and block driving resumption
When a vehicle begins moving, the OS covers parked activities with a blocking
overlay and triggers onPause (and onStop on compatibility mode vehicles). To
satisfy DD-2, DD-3, and MC-1:
- Pause playback on
ON_PAUSEorON_STOPusingLifecycleEventEffectfromandroidx.lifecycle:lifecycle-runtime-compose. - Expose a
MediaSession(androidx.media3:media3-session) with play, pause, or stop commands and item metadata (MC-1), and release it inonCleared. - Add
useLibrary("android.car")inbuild.gradle.kts, wrapExoPlayerinForwardingSimpleBasePlayer, listen toCarUxRestrictionsManager, pause playback whenisRequiresDistractionOptimizationbecomestrue, and removeCOMMAND_PLAY_PAUSEingetStateso externalMediaSessioncontrols can't resume playback while driving:
@UnstableApi
class CarAwarePlayer(context: Context) :
ForwardingSimpleBasePlayer(ExoPlayer.Builder(context).build()) {
private var shouldPreventPlay = false
private var pausedByUxRestrictions = false
private lateinit var carUxRestrictionsManager: CarUxRestrictionsManager
init {
if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
val car = Car.createCar(context)
carUxRestrictionsManager =
car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE) as CarUxRestrictionsManager
shouldPreventPlay =
carUxRestrictionsManager.currentCarUxRestrictions.isRequiresDistractionOptimization
invalidateState()
carUxRestrictionsManager.registerListener { restrictions: CarUxRestrictions ->
shouldPreventPlay = restrictions.isRequiresDistractionOptimization
if (!shouldPreventPlay && pausedByUxRestrictions) {
handleSetPlayWhenReady(true)
invalidateState()
} else if (shouldPreventPlay && isPlaying) {
pausedByUxRestrictions = true
handleSetPlayWhenReady(false)
invalidateState
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
137.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
137.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
