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

Android разрешения в Unity

Чтобы получить разрешение на доступ к функциям устройства или данным за пределами песочницы приложения Unity, существует два этапа:

  1. Во время сборки объявьте разрешение в манифесте приложения Android Манифест приложения.
  2. Во время выполнения запрашивать разрешение у пользователя.

Для некоторых разрешений Unity автоматически обрабатывает как записи манифеста приложения Android времени сборки, так и запросы разрешений времени выполнения. Дополнительные сведения см. в разделе Разрешения, обрабатываемые Unity.

Заявление разрешений

Приложение Android может запрашивать у пользователя разрешение на использование только тех функций устройства или данных, которые оно объявило в манифесте приложения Android. Это этап обработки разрешений Android во время сборки. Сведения о том, как объявить разрешения, см. в разделе Объявление разрешений для приложения.

Примечание: Если плагин объявляет разрешение в своем манифесте приложения Android, Gradle автоматически добавляет разрешение в окончательный манифест приложения Android на этапе слияния Gradle

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

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

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

Важно: Если вы пытаетесь запросить у пользователя разрешение, которое не объявлено в манифесте приложения Android, устройство не отображает диалог разрешений.

Unity-обрабатываемые разрешения

В зависимости от Настройки Игрока и Unity APIs используемые приложением, Unity автоматически добавляет некоторые требуемые разрешения к Android App Manifest и отправляет запросы на разрешение во время выполнения. Это также относится к любым плагинам, используемым приложением.

Чтобы запретить Unity автоматически отправлять запросы на разрешения во время выполнения, добавьте unityplayer.SkipPermissionsDialog в манифест приложения Android. Это полезно, если вы хотите предоставить информацию о том, почему приложение требует каждое разрешение, прежде чем пользователь увидит запрос на разрешение. В этом случае необходимо отправить запросы на разрешение вручную. Дополнительные сведения см. в разделе Запрос разрешений на время выполнения.

В следующем списке объясняется, какие разрешения Unity обрабатывает автоматически:

  • Если приложение использует вибрацию, например Handheld.Vibrate, Unity добавляет разрешение VIBRATE в манифест приложения Android.
  • Если приложение использует свойство Application.internetReachability, Unity добавляет разрешение ACCESS_NETWORK_STATE в манифест приложения Android.
  • Если приложение использует местоположение API, например LocationService, Unity добавляет разрешение ACCESS_FINE_LOCATION в манифест приложения Android и запрашивает разрешение у пользователя при первом использовании местоположения приложением.
  • Если приложение использует WebCamTexture класс, который Unity добавляет CAMERA разрешение на манифест приложения Android и запрашивает разрешение у пользователя при первом использовании приложения WebCamTexture.
  • Если приложение использует Microphone класс добавляет RECORD_AUDIO разрешение на манифест приложения Android и запрашивает разрешение у пользователя при первом использовании приложения Microphone.

Дополнительные ресурсы