Зачем нужен permission

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

Ответ

Разрешения (permissions) в Android нужны для защиты приватности пользователя и контроля доступа приложений к системным функциям или данным. Они ограничивают доступ к чувствительным ресурсам (камера, контакты, местоположение и т.д.), чтобы пользователь мог явно разрешить или запретить доступ.

Пример объявления в манифесте:

<uses-permission android:name="android.permission.CAMERA"/>

С Android 6.0+ опасные разрешения запрашиваются в runtime:

if (checkSelfPermission(Manifest.permission.CAMERA) != PERMISSION_GRANTED) {
    requestPermissions(arrayOf(Manifest.permission.CAMERA), REQUEST_CODE)
}

Разрешения делятся на:

  • Normal (автоматически выдаются)
  • Dangerous (требуют подтверждения)
  • Signature (для системных приложений)