Google Play — Permissions and sensitive APIs
You are requesting a permission Google treats as high risk, and either the declaration is missing or the justification does not hold up.
What the rejection usually says
Your app requests background location access without an approved use case.
Your app uses the QUERY_ALL_PACKAGES permission without an eligible use.
Your app requests All files access but does not require it.
Wording varies between reviewers; the substance does not.
Why it gets triggered
- Background location used for something a foreground request would satisfy.
- All-files access when scoped storage or the picker would do.
- Package visibility requested broadly rather than for a specific, eligible purpose.
- A permission left in the manifest by an SDK you no longer use.
How to fix it
1.Remove what you do not need
Audit the merged manifest — permissions often arrive through dependencies. Delete anything no feature actually uses.
2.Use the narrower API
Photo picker instead of all-files, foreground location instead of background, specific package queries instead of the blanket permission.
3.Complete the declaration properly
Where the permission is genuinely required, fill in the declaration form with the specific user-facing feature and a demo video showing it.
A reply you can adapt
Short, specific, and stating what changed — reviewers read hundreds of these.
Thanks for the review. We removed background location entirely — the feature now works with foreground access — and dropped All files access in favour of the media picker. The remaining declaration has been updated with a demo video of the feature it supports.
AppSubmit does this for your app, specifically
Paste the rejection and the decoder reads it against your actual listing, build and release history — then writes the fix plan and drafts the reply. It also watches your submissions, so the next rejection reaches you as a notification rather than a surprise.
Decode a rejection free