Skip to content
Narvy

Play Console foreground service permissions declaration

Your build targets API 34+ and declares foreground service types. Google Play asks for a foreground service permissions declaration in Play Console, under Policy, App content: for each type, what the task does, what happens to the user if it is deferred, and a short video.

Play Console, publishing
You must let us know whether your app uses any Foreground Service permissions.

What it means

If your app targets Android 14 or higher, you'll need to declare your app's foreground service types in the Play Console's app content page (Policy > App content).

Android Developers, foreground service types are required

The declaration covers every type in the merged manifest, including types declared by services that come from libraries. The store check lists each service and its types so you know what to declare, or what to remove.

Deadline

No new date recorded by the store check: the declaration applies to every app that targets API 34 or higher and declares a foreground service type.

How to fix it

1. List the types the build declares

Take the list from the store check report, or from the Merged Manifest tab in Android Studio (android:foregroundServiceType on each <service>).

2. Remove the types you do not use

AndroidManifest.xml (only if you know the app never starts that service with another type)
<service
    android:name="com.example.sdk.SyncService"
    android:foregroundServiceType="dataSync"
    tools:replace="android:foregroundServiceType" />

3. Fill in the declaration

In Play Console, open Policy, then App content, then the foreground service permissions declaration. For each type, describe the user-visible task, the impact if the system deferred it, and link a video that shows the feature.

Check before you submit

Upload the APK, AAB or split-APK set (XAPK, APKS, APKM) on the store check page. It runs PLAY-FGS-DECLARATION against the dates on this page, then deletes the file: nothing about the app is kept. The same engine runs offline in the Narvy CLI, and exits with code 1 when a blocker is found, so it can gate a CI job.

Offline, from a terminal (narvy-cli 1.2.0 or later)
narvy store-check app-release.aab

Check a build in the browser

FAQ

A library declares the type, not my code. Do I still declare it?

Yes, the declaration is about what the uploaded build contains. If the feature is unused, removing the service or the type from the merged manifest is cleaner than declaring it.

Is this the same as the foregroundServiceType crash?

No. The crash is a platform rule checked at runtime; this is a Play Console policy declaration. Both apply to apps targeting API 34+.