You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using UnityEngine;
|
|
|
|
public class NotificationPermissionRequester : MonoBehaviour
|
|
{
|
|
void Start()
|
|
{
|
|
#if UNITY_ANDROID && !UNITY_EDITOR
|
|
using (AndroidJavaClass version = new AndroidJavaClass("android.os.Build$VERSION"))
|
|
{
|
|
int sdkInt = version.GetStatic<int>("SDK_INT");
|
|
|
|
if (sdkInt >= 33)
|
|
{
|
|
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
|
|
using (AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
|
|
{
|
|
string permission = "android.permission.POST_NOTIFICATIONS";
|
|
|
|
using (AndroidJavaClass permissionChecker = new AndroidJavaClass("androidx.core.content.ContextCompat"))
|
|
{
|
|
int permissionStatus = permissionChecker.CallStatic<int>("checkSelfPermission", activity, permission);
|
|
|
|
if (permissionStatus != 0) // not granted
|
|
{
|
|
string[] permissions = new string[] { permission };
|
|
using (AndroidJavaClass activityCompat = new AndroidJavaClass("androidx.core.app.ActivityCompat"))
|
|
{
|
|
activityCompat.CallStatic("requestPermissions", activity, permissions, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|