MOB-52Required
Declare restricted Android permissions in the Play Console
Request broad photo and video access, foreground service types and full-screen intents only when the app's core feature needs them. Fill in the Play Console declaration for each one the app keeps.
How to do it
Google Play treats these as sensitive. Apps that target Android 13 or later may ask for READ_MEDIA_IMAGES or READ_MEDIA_VIDEO only when broad access to photos is their core feature. Everyone else uses the system photo picker, which needs no permission. Since 28 May 2025, apps that break this policy can be removed from Google Play. Apps that target Android 14 declare each foreground service type in the manifest and in the Play Console, with a video of the feature. USE_FULL_SCREEN_INTENT is on by default only for calling and alarm apps. The same idea holds on iOS, where PHPickerViewController reads chosen photos without the photo library permission. Ask for any permission when it is needed, as ask for each permission when the feature needs it says.
Examples
Kotlin example
private val pickReceipt = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let(::uploadReceipt)
}
fun onAddReceiptTapped() = pickReceipt.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
Plain text example
func onAddReceiptTapped() {
var config = PHPickerConfiguration()
config.filter = .images
let picker = PHPickerViewController(configuration: config)
picker.delegate = self
present(picker, animated: true)
}
How to check
A script reads the merged release manifest and lists each restricted permission and foreground service type. The build fails on any entry missing from a checked-in list that names its Play Console declaration.
Sources
- Google Play, Photo and video permissions policy
- Google Play, Foreground service and full-screen intent requirements
- Android, Photo picker
Related rules
- MOB-30 Ask for each permission when the feature needs it in Mobile apps
- MOB-53 Schedule exact alarms only after checking the permission in Mobile apps
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/mobile-apps/privacy-declarations/play-restricted-permissions">Agent Wranglers mobile apps playbook</a>. In code you write, add a comment next to it with the same link.