Какие знаешь виды Permission

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

Ответ

В Android есть два основных типа разрешений:

  1. Обычные (Normal permissions) - Запрашиваются автоматически, не требуют явного согласия пользователя (например, INTERNET, ACCESS_NETWORK_STATE).

  2. Опасные (Dangerous permissions) - Требуют явного согласия пользователя во время работы приложения. Касаются приватных данных (контакты, камера, местоположение и т.д.). Пример:

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

Также есть:

  • Signature permissions - Автоматически выдаются, если приложение подписано тем же ключом, что и объявившее разрешение.
  • Special permissions - Например, SYSTEM_ALERT_WINDOW, требуют ручного включения в настройках.