diff --git a/Runtime/Code/SDK/GuruSDK.Ads.cs b/Runtime/Code/SDK/GuruSDK.Ads.cs index 11921f8..4ba5d1f 100644 --- a/Runtime/Code/SDK/GuruSDK.Ads.cs +++ b/Runtime/Code/SDK/GuruSDK.Ads.cs @@ -129,6 +129,8 @@ namespace Guru #if UNITY_IOS CheckAttStatus(); // [iOS] Consent 启动后检查 ATT 初始值 +#elif UNITY_ANDROID + CheckPermission(); // [Android] Consent 回调后检查 Push 推送权限 #endif // 内部处理后继逻辑 @@ -222,7 +224,44 @@ namespace Guru } #endif - #endregion + #endregion + + #region Android 13 PushNotification Permission + + private const string PERMISSION_POST_NOTIFICATION = "android.permission.POST_NOTIFICATIONS"; + + private void CheckPermission() + { + float delay = 1; + Debug.Log($"---- Check PushPermission ---"); +#if UNITY_ANDROID + // 如果已经请求过权限的话, 则不做动作 + if (UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) + { + Debug.Log($"--- PushPermission has passed ---"); + return; + } +#endif + Invoke(nameof(RequestNotification), delay); + } + + /// + /// 请求Notification + /// + private void RequestNotification() + { +#if UNITY_ANDROID + Debug.Log("--- Target 33 Request Notification ---"); + // Android直接申请授权 + if (!UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) + { + UnityEngine.Android.Permission.RequestUserPermission(PERMISSION_POST_NOTIFICATION); + } +#endif + } + + + #endregion #region Ad Services diff --git a/Runtime/Code/SDK/GuruSDK.cs b/Runtime/Code/SDK/GuruSDK.cs index 6626420..9e3a025 100644 --- a/Runtime/Code/SDK/GuruSDK.cs +++ b/Runtime/Code/SDK/GuruSDK.cs @@ -249,7 +249,6 @@ namespace Guru //-------- SetUserProperties --------- InitUserProperties(); - bool useKeywords = false; bool useIAP = _initConfig.IAPEnabled; bool appleReview = false;