В чем различие работы с опасным и неопасным разрешением

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

Ответ

Опасные разрешения (например, READ_CONTACTS, CAMERA) требуют явного запроса у пользователя во время работы приложения через requestPermissions(). Без них доступ к данным или функциям невозможен.

Неопасные разрешения (например, INTERNET, VIBRATE) автоматически выдаются при установке приложения и не требуют дополнительных запросов.

Пример запроса опасного разрешения:

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