Объявление
public static void RequestUserPermission(string permission);public static void RequestUserPermission(string permission, Android.PermissionCallbacks callbacks);
Параметры
permission | Строка, описывающая разрешение на запрос. Для разрешений, которые Unity не предопределила, вы также можете вручную указать постоянное значение, полученное из документации Android, здесь: https://developer.android.com/guide/topics/permissions/overview#permission-groups, например «android.permission. ЧИТАТЬ_КОНТАКТЫ". |
callbacks | Экземпляр обратных вызовов, вызываемых при выполнении запроса на разрешение. |
Описание
Запросить у пользователя доступ к ресурсу устройства или информации, требующей авторизации.
using UnityEngine;
using UnityEngine.Android;
public class RequestPermissionScript : MonoBehaviour
{
internal void PermissionCallbacks_PermissionDeniedAndDontAskAgain(string permissionName)
{
Debug.Log($"{permissionName} PermissionDeniedAndDontAskAgain");
}
internal void PermissionCallbacks_PermissionGranted(string permissionName)
{
Debug.Log($"{permissionName} PermissionCallbacks_PermissionGranted");
}
internal void PermissionCallbacks_PermissionDenied(string permissionName)
{
Debug.Log($"{permissionName} PermissionCallbacks_PermissionDenied");
}
void Start()
{
if (Permission.HasUserAuthorizedPermission(Permission.Microphone))
{
// Пользователь авторизовал использование микрофона.
}
else
{
bool useCallbacks = false;
if (!useCallbacks)
{
// У нас нет разрешения на использование микрофона.
// Запрашиваем разрешение или продолжаем без включенной функциональности.
Permission.RequestUserPermission(Permission.Microphone);
}
else
{
var callbacks = new PermissionCallbacks();
callbacks.PermissionDenied += PermissionCallbacks_PermissionDenied;
callbacks.PermissionGranted += PermissionCallbacks_PermissionGranted;
callbacks.PermissionDeniedAndDontAskAgain += PermissionCallbacks_PermissionDeniedAndDontAskAgain;
Permission.RequestUserPermission(Permission.Microphone, callbacks);
}
}
}
}