Как запросить разрешение у пользователя

Добрейшего времени суток, такая проблема, хочу запросить у пользователя разрешение, но при запуске кода ничего не происходит, вот код запроса разрешения:

ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1)

Ответы (1 шт):

Автор решения: antipups

Ответ прост, есть два вида разрешений и то разрешение которое мне нужно было, это опасное разрешение и его просто так у пользователя не спросить, а посему вот код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)     // проверяем версию устроиства (доступно только с 6-ого андройда)
    {
        if (Settings.System.canWrite(this))         // проверяем можно ли делать то что нам надо (записывать настройки)
        {
            println("Доступ есть")
        }
        else                                                // если нельзя то создаем окно и запрашиваем у пользователя разрешения в нем
        {
            val intent = Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS)     // action_manage... ниже объясню
            intent.setData(Uri.parse("package:" + this.packageName));
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
        }
    }

ACTION_MANAGE_WRITE_SETTING - это окно которое будет вызвано для запроса нужного разрешения, для опасного разрешения это делается так. Ссыль на все эти окна:окна для получения разрешения

→ Ссылка