Какие знаешь разрешения в Android

«Какие знаешь разрешения в Android» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть несколько типов разрешений:

  1. Обычные (Normal) - не требуют явного запроса (например, интернет)
<uses-permission android:name="android.permission.INTERNET"/>
  1. Опасные (Dangerous) - требуют runtime-запроса (камера, контакты и т.д.)
if (checkSelfPermission(Manifest.permission.CAMERA) != PERMISSION_GRANTED) {
    requestPermissions(arrayOf(Manifest.permission.CAMERA), REQUEST_CODE)
}
  1. Сигнатурные (Signature) - автоматически выдаются, если подпись совпадает с приложением-владельцем

  2. Особые (Special) - например, SYSTEM_ALERT_WINDOW или WRITE_SETTINGS, требующие дополнительных действий

  3. Разрешения времени установки (Install-time) - автоматически предоставляются при установке

Начиная с Android 10 появились разрешения для доступа к местоположению в фоне, а в Android 11 - одноразовые разрешения.