Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход
Разработка платформы Шаг 122 из 387

Запрос разрешений времени выполнения

На этой странице описывается, как запросить разрешение пользователя для приложения на доступ к данным на устройстве или использование функции устройства, например встроенного камера или микрофон.

В руководстве Google по запросу разрешений рекомендуется, чтобы в случае отказа пользователя в разрешении вы указывали причину отказа и представляли запрос снова.

Дополнительные сведения о том, когда и как запрашивать разрешения на устройствах Android, см. в разделе App permissions recommended practices в руководстве разработчика Android.

Предварительные условия

Прежде чем приложение запрашивает разрешение на использование ограниченных данных или определенной функции устройства, оно должно объявить разрешение в манифесте приложения Android. Дополнительные сведения см. в разделе Заявление разрешений для приложения.

Запрос разрешения во время выполнения

Android.Permission API обеспечивает функциональность, которую можно использовать для проверки разрешений, которыми в настоящее время обладает приложение, и запроса разрешений, которые требуются приложению, но которыми оно не обладает.

Обзор процесса запроса разрешения во время выполнения выглядит следующим образом:

  1. Проверьте, уже ли пользователь предоставил разрешение на приложение. Если да, то вам не нужно запрашивать его снова.
  2. Если пользователь не предоставил разрешение, проверьте, нужно ли отображать обоснование запроса разрешения. Если обоснование не требуется, отправьте запрос на разрешение доступа к данным или использования функции устройства, требуемой приложением, напрямую.
  3. Если пользователь отказывает в разрешении приложению, отключите функциональные возможности приложения, требующие конкретного разрешения. Если приложение не может работать без этих функциональных возможностей, сообщите об этом пользователю.
  4. Если пользователь по-прежнему отказывается предоставить разрешение приложению, рекомендуется предоставить метод, позволяющий пользователю вручную запустить запрос на разрешение снова из приложения.

Проверить, имеет ли приложение разрешение

Используйте Permission.HasUserAuthorizedPermission, чтобы проверить, предоставил ли пользователь разрешение на данные или функцию, требуемую приложением.

Для примера кода, показывающего, как использовать API, см. Permission.HasUserAuthorizedPermission.

Выберите, следует ли отображать обоснование запроса на разрешение

Используйте Permission.ShouldShowRequestPermissionRationale для проверки необходимости отображения обоснования для конкретного запроса на разрешение.

Если обоснование необходимо, отобразите сообщение с указанием причины, по которой ваше приложение требует доступа к определенным функциям устройства. После отображения сообщения отправьте запрос на разрешение.

Если обоснование не является необходимым, отправьте запрос на разрешение напрямую.

Для примера кода, показывающего, как использовать API, см. Permission.ShouldShowRequestPermissionRationale.

Отправить запрос на разрешение

Используйте Permission.RequestUserPermission для запроса разрешения на использование данных или функции. При вызове этого метода Android открывает диалог системных разрешений, с помощью которого пользователь может предоставить или отказать в разрешении.

Для примера кода, показывающего, как использовать API, см. Permission.RequestUserPermission.

Использование Permission.RequestUserPermissions Этот метод использует массив строк, каждая из которых представляет собой конкретное разрешение на доступ к определенному ресурсу, например, к устройству пользователя, или к файлу или папке пользователя. камера , микрофон или местоположение.

Эти методы могут принимать объект PermissionCallbacks, который можно использовать для указания кода, выполняемого после предоставления или отказа пользователя в разрешении. Этот объект можно использовать для начала использования функции устройства, как только пользователь предоставит запрос на разрешение. Например, можно начать запись с микрофона.

Тип: При запросе разрешения рекомендуется отображать пользователю сообщение, в котором объясняется, почему приложение требует данную функцию.

Примечание: Если пользователь включил Не спрашивать меня больше в диалоге системных разрешений, или отказал в разрешении более чем один раз, RequestUserPermission() не открывает системный диалог. В этом случае пользователь должен перейти в настройки разрешений приложения и вручную включить разрешение.

Предоставление способа ручного запуска запроса на разрешение

Если пользователь отказывается предоставить разрешение, которое требуется приложению, предоставьте ему возможность вручную отобразить диалог запроса разрешения. Как это сделать зависит от приложения, но одним из решений является предоставление кнопки, которая вызывает Permission.RequestUserPermission.