У меня есть вопрос относительно новой версии Android Marshmallow:
Можно ли отобразить экран разрешений для определенного приложения через намерение или что-то подобное?
Можно отобразить настройки приложения с помощью следующего кода - есть ли аналоговое решение для прямого открытия экрана разрешений?
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Я уже провел некоторые исследования по этому вопросу, но не смог найти правильного решения - я был бы признателен за любую помощь!
android
android-permissions
android-6.0-marshmallow
Фредерик Швайгер
источник
источник
Ответы:
Согласно официальному видео о разрешениях «Зефир» (на отметке 4 м 43 с ), вы должны вместо этого открыть страницу «Настройки приложения» (оттуда один клик до страницы «Разрешения»).
Чтобы открыть страницу настроек, вы должны сделать
источник
Это невозможно. Я тоже пытался это сделать. Я мог бы выяснить имя пакета и активность, которая будет запущена. Но в конце вы получите исключение безопасности из-за отсутствия разрешения, которое вы не можете объявить.
ОБНОВИТЬ:
Что касается другого ответа, я также рекомендую открыть экран настроек приложения. Я делаю это с помощью следующего кода:
Поскольку я не хочу иметь это в моем стеке истории, я удаляю это, используя намеренные флаги.
источник
Описание Открывает страницу настроек сведений для приложения. Отсюда пользователь должен вручную назначить желаемое разрешение.
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Intent.FLAG_ACTIVITY_NEW_TASK
Необязательно . Если установлено, то открывает экран настроек (активность) как новое действие. В противном случае он будет открыт в текущем действии.
Uri.fromParts("package", getPackageName(), null)
Подготавливает или создает URI, тогда как getPackageName () - возвращает имя вашего пакета приложения.
intent.setData(uri)
Не забудьте установить это . В противном случае вы получите
android.content.ActivityNotFoundException
. Потому что вы установили свое намерение как,Settings.ACTION_APPLICATION_DETAILS_SETTINGS
и Android ожидает какое-то имя для поиска.источник
Вместо этого вы можете открыть общие настройки конкретного приложения одной строкой
источник
Невозможно программно открыть экран разрешений. Вместо этого мы можем открыть экран настроек приложения.
Код
Пример вывода
источник
Если вы хотите написать меньше кода,
Kotlin
вы можете сделать это:На основании ответа Мартина Конечны
источник
Котлинский стиль.
источник
Может быть, это поможет вам
источник
Если мы говорим о Flyme OS (Meizu) ТОЛЬКО есть свое собственное приложение безопасности с разрешениями.
Чтобы открыть его используйте следующее намерение:
Из-причин BuildConfig является вашим приложением BuildConfig .
источник
Xamarin Forms Android:
источник
невозможно прагматически получить разрешение ... но я не советую вам помещать эту строку кода в try {} catch {}, который, к сожалению, останавливает ваше приложение ... и в теле body сделать диалоговое окно, которое будет перемещаться по от пользователя к небольшому учебнику, чтобы разрешить рисование поверх других приложений ... затем при нажатии кнопки да вставьте этот код ...
эта цель состоит в том, чтобы непосредственно открыть список отрисовки над другими приложениями для управления разрешениями, а затем отсюда можно одним щелчком мыши перерисовать другие приложения. Разрешения ... я знаю, что это не тот ответ, который вы ищете ... но Я делаю это в моих приложениях ...
источник