На этой странице объясняется, как запросить у пользователя разрешение вашего приложения на доступ к данным на устройстве или использование функции устройства, например встроенной камеры
Посмотреть в Словарь
Рекомендации Google по запросу разрешений рекомендуют, чтобы, если пользователь отклонил запрос на разрешение один раз, вы должны указать причину запроса и отправить запрос еще раз.
Дополнительную информацию о том, когда и как следует запрашивать разрешения на устройстве Android, см. в приложении. рекомендации по разрешениям в руководстве для разработчиков Android.
Предпосылки
Для API разрешений во время выполнения требуется Android версии 6 (уровень API 23). Чтобы изменить целевой API вашего приложения:
- Выберите Изменить > Настройки проекта.
- В окне настроек проекта выберите вкладку Проигрыватель, затем откройте Настройки проигрывателя Android:
- В разделе Настройки публикации установите для параметра Целевой уровень API значение не ниже 23.
Прежде чем приложение запросит разрешение на использование ограниченных данных или определенной функции устройства, оно должно объявить разрешение в своем манифесте приложения Android. Дополнительные сведения см. в разделе Объявление разрешений для приложения.
Запрашивать разрешение во время выполнения
API Android.Permission предоставляет функциональные возможности, которые можно использовать для проверки текущих разрешений приложения и запроса разрешений, которые требуются приложению, но не нет.
Обзор процесса запроса разрешения во время выполнения выглядит следующим образом:
- Проверьте, дал ли пользователь уже разрешение приложению. Если они есть, вам не нужно запрашивать их снова.
- Если пользователь не предоставил разрешение, отправьте запрос на получение разрешения на доступ к данным или использование функции устройства, которая требуется приложению.
- Если пользователь не предоставил разрешение приложению, отключите функции приложения, для которых требуется конкретное разрешение. Если приложение не может работать без этой функции, сообщите об этом пользователю.
- Если пользователь по-прежнему не дает разрешение приложению, рекомендуется предоставить метод, который позволит пользователю снова вручную инициировать запрос разрешения из приложения.
Проверьте, есть ли у приложения разрешение
Используйте Permission.HasUserAuthorizedPermission, чтобы проверить, дал ли пользователь уже разрешение на данные или функцию, необходимые приложению.
Пример кода, демонстрирующий использование этого API, см. в разделе Permission.HasUserAuthorizedPermission.
Отправить запрос на разрешение
Используйте Permission.RequestUserPermission, чтобы запросить разрешение на использование данных или функции. Когда вы вызываете эту функцию, Android открывает диалоговое окно разрешения системы, которое пользователь может использовать для подтверждения или отклонения разрешения.
Пример кода, демонстрирующий использование этого API, см. в разделе Permission.RequestUserPermission.
Совет. Когда вы запрашиваете разрешение, рекомендуется показать пользователю сообщение, объясняющее, почему приложению требуется эта функция.
Примечание. Если пользователь ранее установил флажок Больше не спрашивать в диалоговом окне разрешений системы или отклонил разрешение более одного раза, RequestUserPermission()
не открывает системный диалог. В этом случае пользователь должен зайти в настройки разрешений приложения и вручную включить разрешение.
Предоставить способ запуска запроса на разрешение вручную
Если пользователь по-прежнему отказывает приложению в требуемом разрешении, предоставьте пользователю возможность вручную отобразить диалоговое окно запроса разрешения. Как это сделать, зависит от приложения, но одним из решений является предоставление кнопки, которая вызывает Permission.RequestUserPermission.