Login to manage your account

Please enter a valid email address.
Forgot Password?
Please enter a valid password.
OR

Don't have an account yet? Sign up

How do Android permissions work, and what changed with runtime permissions?

Permissions are declared in the manifest, but how they are granted depends on their protection level.

  • Normal permissions — low risk, such as internet access or vibration. Granted automatically at install; the user is never asked.
  • Dangerous permissions — access to private data or sensitive hardware: camera, location, contacts, microphone, and certain storage access. Since Android 6 (API 23) these must be requested at runtime, and the user can deny or later revoke them.
  • Signature permissions — granted only to apps signed with the same certificate.

The runtime flow: check with ContextCompat.checkSelfPermission, request through the Activity Result API, and handle the result. Critically, you must handle all three outcomes — granted, denied, and permanently denied — and the app must remain usable when a permission is refused. Requesting everything at launch is the pattern most likely to get an app uninstalled.

What tightened since:

  • Android 10 — background location became a separate, harder-to-obtain permission, and scoped storage restricted filesystem access.
  • Android 11 — one-time permissions, and auto-revocation for unused apps.
  • Android 13 — granular media permissions replacing broad storage access, and a runtime permission for notifications.
  • Android 14 — partial photo and video access, letting users share only selected items.

Note: Explain why you need a permission in context, immediately before requesting it. Requesting without context is the main cause of denial.

All Android interview questions

Login to manage your account

Please enter a valid email address.
Forgot Password?
Please enter a valid password.
OR

Don't have an account yet? Sign up as