PermissionManager.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.Android;
  4. namespace SmartBowSDK
  5. {
  6. public static class PermissionManager
  7. {
  8. public static void Request(string permission, Action onGranted, Action onDenied = null, Action onDontAsk = null)
  9. {
  10. // ÒÑÓÐȨÏÞ
  11. if (Permission.HasUserAuthorizedPermission(permission))
  12. {
  13. Debug.Log($"[Permission] Already Granted: {permission}");
  14. onGranted?.Invoke();
  15. return;
  16. }
  17. Debug.Log($"[Permission] Request: {permission}");
  18. var callbacks = new PermissionCallbacks();
  19. callbacks.PermissionGranted += p =>
  20. {
  21. Debug.Log($"[Permission] Granted: {p}");
  22. onGranted?.Invoke();
  23. };
  24. callbacks.PermissionDenied += p =>
  25. {
  26. Debug.Log($"[Permission] Denied: {p}");
  27. onDenied?.Invoke();
  28. };
  29. callbacks.PermissionDeniedAndDontAskAgain += p =>
  30. {
  31. Debug.Log($"[Permission] DontAskAgain: {p}");
  32. onDontAsk?.Invoke();
  33. };
  34. Permission.RequestUserPermission(permission, callbacks);
  35. }
  36. public static bool Has(string permission)
  37. {
  38. return Permission.HasUserAuthorizedPermission(permission);
  39. }
  40. }
  41. }