Skip to content
Narvy

Precise location on Google Play: location button or a Play Console declaration

Your build requests ACCESS_FINE_LOCATION without the onlyForLocationButton flag. Google Play requires a precise location declaration in Play Console from every such app, explaining why the location button or coarse location is not enough. From target API 37, precise location used only for one-time, user-initiated actions must go through the location button.

What it means

All apps requesting precise location (ACCESS_FINE_LOCATION) must complete a declaration in the Play Console to demonstrate access needs and justify why the location button or coarse location is insufficient.

Play Console Help, minimum scope and the location button

Google lists the one-time uses the button is for: search nearby, sharing a location once, tagging content with a location, address autofill. Continuous uses such as navigation or fitness tracking keep ACCESS_FINE_LOCATION, with the declaration. For apps that target API 37, the button rule is mandatory for those one-time uses.

The store check reads each ACCESS_FINE_LOCATION declaration and its android:usesPermissionFlags. With the onlyForLocationButton flag the check passes. Without it, the check reports that a declaration is needed. Whether the app's use is one-time or continuous is not in the binary.

Deadline

From January 27, 2027, as listed in Google's Play policy deadlines. The store check applies the rule from that date; before it, the finding is titled "Required from" the date. It is never a blocker: what Google requires is not in the binary. Google states that the precise location declaration becomes available in Play Console in November 2026 and that 30-day self extensions will be available.

How to fix it

1. One-time precise location: use the location button

Add the flag so precise location is only granted through the button, then show the LocationButton composable from the Jetpack library where the user asks for their position.

AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
    android:name="android.permission.ACCESS_FINE_LOCATION"
    android:usesPermissionFlags="onlyForLocationButton" />
<uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />

2. Coarse location is often enough

If the feature works at city or district level, request ACCESS_COARSE_LOCATION only and remove ACCESS_FINE_LOCATION.

3. Continuous precise location: declare it

Complete the precise location declaration in Play Console: the features that need ACCESS_FINE_LOCATION, and why the location button or coarse location is not enough.

Check before you submit

Upload the APK, AAB or split-APK set (XAPK, APKS, APKM) on the store check page. It runs PLAY-PRECISE-LOCATION against the dates on this page, then deletes the file: nothing about the app is kept.

Check a build in the browser

FAQ

My app targets API 36. Does this apply?

The declaration does: Google requires it from all apps that request precise location. The location button obligation applies once the app targets API 37; the store check says which case it found.

A library adds ACCESS_FINE_LOCATION. Is my app concerned?

Yes, Google reviews the merged manifest. Remove it with tools:node="remove" if no feature of the app needs it.