permission | 描述要请求的权限的字符串。对于 Unity 尚未预定义的权限,您也可以手动提供从此处 Android 文档中获取的常量值:https://developer.android.com/guide/topics/permissions/overview#permission-groups,例如“android.permission.READ_CONTACTS”。 |
callbacks | An instance of callbacks invoked when permission request is executed. |
请求用户授予对设备资源或需要授权的信息的访问权限。
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)) { // The user authorized use of the microphone. } else { bool useCallbacks = false; if (!useCallbacks) { // We do not have permission to use the microphone. // Ask for permission or proceed without the functionality enabled. 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); } } } }