Skip to content

Commit 4068135

Browse files
committed
Fix issues when cannot request permission
1 parent 02b64a4 commit 4068135

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

com.unity.mobile.notifications/Runtime/Android/AndroidNotificationCenter.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,7 @@ public class AndroidNotificationCenter
589589
private static AndroidJavaObject s_CurrentActivity;
590590
private static JniApi s_Jni;
591591
private static int s_DeviceApiLevel;
592+
private static int s_TargetApiLevel;
592593
private static bool s_Initialized = false;
593594

594595
/// <summary>
@@ -619,6 +620,7 @@ public static bool Initialize()
619620

620621
using (var version = new AndroidJavaClass("android/os/Build$VERSION"))
621622
s_DeviceApiLevel = version.GetStatic<int>("SDK_INT");
623+
s_TargetApiLevel = notificationManager.Call<int>("getTargetSdk");
622624

623625
s_Initialized = true;
624626
#endif
@@ -681,6 +683,12 @@ public static PermissionStatus RequestPermissionToPost()
681683
return permissionStatus;
682684
if (permissionStatus == PermissionStatus.DeniedDontAskAgain)
683685
return permissionStatus;
686+
// Can only request permission if applications target SDK is 33, not actual device SDK
687+
if (s_TargetApiLevel < API_POST_NOTIFICATIONS_PERMISSION_REQUIRED)
688+
{
689+
SetPostPermissionStting(PermissionStatus.DeniedDontAskAgain);
690+
return PermissionStatus.DeniedDontAskAgain;
691+
}
684692

685693
var callbacks = new PermissionCallbacks();
686694
callbacks.PermissionGranted += (unused) => SetPostPermissionStting(PermissionStatus.Allowed);

com.unity.mobile.notifications/Runtime/Android/Plugins/com/unity/androidnotifications/UnityNotificationManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ public NotificationManager getNotificationManager() {
138138
return (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
139139
}
140140

141+
public int getTargetSdk() {
142+
return mContext.getApplicationInfo().targetSdkVersion;
143+
}
144+
141145
public void registerNotificationChannel(
142146
String id,
143147
String name,

0 commit comments

Comments
 (0)