Что такое опасные разрешения

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

Ответ

Опасные разрешения (dangerous permissions) в Android — это разрешения, которые могут затрагивать приватность пользователя или безопасность устройства. Они требуют явного согласия пользователя во время работы приложения (runtime permissions), начиная с Android 6.0 (API 23).

Примеры:

  • READ_CONTACTS
  • ACCESS_FINE_LOCATION
  • CAMERA

Как запросить:

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

Проверка результата:

override fun onRequestPermissionsResult(...) {
    if (grantResults.isNotEmpty() && grantResults[0] == PERMISSION_GRANTED) {
        // Разрешение получено
    }
}

Важно обрабатывать отказ и объяснять необходимость разрешения (shouldShowRequestPermissionRationale).