/** *权限要求 *在Java方面进行Rationale的处理等 * @param permission * @param callback */ public static IEnumerator GrantPermission(string permission, OnPermission callback) { Debug.Log(TAG + "GrantPermission:" + permission); if (!HasPermission(permission)) { grantResult = PermissionGrantResult.PERMISSION_DENY; isPermissionRequesting = true; using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN)) { clazz.CallStatic("grantPermission", AndroidUtils.GetCurrentActivity(), permission); } float timeElapsed = 0; while (isPermissionRequesting) { if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs)) { isPermissionRequesting = false; yield break; } timeElapsed += Time.deltaTime; yield return null; } callback(permission, grantResult); } else { callback(permission, PermissionGrantResult.PERMISSION_GRANT); } yield break; }
/** * パーミッション要求 * こっちはJava側でRationaleの処理等を行う * @param permission * @param callback */ public static IEnumerator GrantPermission(string permission, OnPermission callback) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}GrantPermission:{permission}"); #endif if (!HasPermission(permission)) { grantResult = PermissionGrantResult.PERMISSION_DENY; isPermissionRequesting = true; using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN)) { clazz.CallStatic("grantPermission", AndroidUtils.GetCurrentActivity(), permission); } float timeElapsed = 0; while (isPermissionRequesting) { if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs)) { isPermissionRequesting = false; yield break; } timeElapsed += Time.deltaTime; yield return null; } callback(permission, grantResult); } else { callback(permission, PermissionGrantResult.PERMISSION_GRANT); } yield break; }
/** * パーミッションを取得できずパーミッションダイアログを再び表示しないように設定された */ public void OnPermissionDenyAndNeverAskAgain() { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnPermissionDenyAndNeverAskAgain:"); #endif grantResult = PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN; isPermissionRequesting = false; }
/** * パーミッションを取得できなかった */ public void OnPermissionDeny() { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnPermissionDeny:"); #endif grantResult = PermissionGrantResult.PERMISSION_DENY; isPermissionRequesting = false; }
public MultiplePermissionGrantResult(string[] names, PermissionGrantResult grantResult = PermissionGrantResult.Undefined) { Check.NotNull(names, nameof(names)); Result = new Dictionary <string, PermissionGrantResult>(); foreach (var name in names) { Result.Add(name, grantResult); } }
public async Task HandleEventAsync(object sender, IUserConnectedEvent @event) { UnturnedUser user = (UnturnedUser)@event.User; Jobs.Civil++; PermissionGrantResult medic = await ro_PermissionChecker.CheckPermissionAsync(user, ro_Configuration.GetSection("plugin_configuration:medic_permission").Get <string>()); PermissionGrantResult police = await ro_PermissionChecker.CheckPermissionAsync(user, ro_Configuration.GetSection("plugin_configuration:police_permission").Get <string>()); if (medic == PermissionGrantResult.Grant && !user.Player.Player.channel.owner.isAdmin) { Jobs.Medic++; } if (police == PermissionGrantResult.Grant && !user.Player.Player.channel.owner.isAdmin) { Jobs.Police++; } }
public RegisterPermissionAttribute(string permission) { Permission = permission; DefaultGrant = PermissionGrantResult.Default; }
/** * パーミッションを取得できずパーミッションダイアログを再び表示しないように設定された */ public void OnPermissionDenyAndNeverAskAgain() { Debug.Log(TAG + "OnPermissionDenyAndNeverAskAgain:"); grantResult = PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN; isPermissionRequesting = false; }
/** * パーミッションを取得できなかった */ public void OnPermissionDeny() { Debug.Log(TAG + "OnPermissionDeny:"); grantResult = PermissionGrantResult.PERMISSION_DENY; isPermissionRequesting = false; }
/** * パーミッションを取得できた */ public void OnPermissionGrant() { Debug.Log(TAG + "OnPermissionGrant:"); grantResult = PermissionGrantResult.PERMISSION_GRANT; isPermissionRequesting = false; }