Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

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

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

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

Объявить разрешения

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

Примечание. Если плагиннабор кода, созданный вне Unity, создающий функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь
объявляет разрешение в своем Android App Manifest, GradleСистема сборки Android, автоматизирующая несколько процессов сборки. Эта автоматизация означает, что вероятность возникновения многих распространенных ошибок сборки снижается. Подробнее
See in Словарь
автоматически добавляет разрешение в окончательный манифест приложения Android во время Gradle этап слияния

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

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

Информацию о том, как запросить разрешение во время выполнения, см. в разделе Запрос разрешений во время выполнения.

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

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

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

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

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

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

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

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3