Tan pronto como actualicé el SDK de destino a 30+ (Android R o posterior), apareció una advertencia de Missing PendingIntent mutability flag en PendingIntent.FLAG_UPDATE_CURRENT flag cuando quiero definir PendingIntent.

E/AndroidRuntime: FATAL EXCEPTION: Thread-3
    Process: co.danydev.myapp, PID: 11604
    java.lang.IllegalArgumentException: co.danydev.myapp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
        at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
        at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
        at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
        at com.bswen.wzreceiver.utils.AlarmUtil.scheduleAlarm(AlarmUtil.java:30)
        at co.danydev.myapp.App$1.run(App.java:115)
        at java.lang.Thread.run(Thread.java:920)
I/Process: Sending signal. PID: 11604 SIG: 9

Posibles soluciones

Puede establecer su PendingIntent como:

val updatedPendingIntent = PendingIntent.getActivity(
   applicationContext,
   NOTIFICATION_REQUEST_CODE,
   updatedIntent,
   PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag 
)

Según la documentación de android developer la cual puedes ver aquí: https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability

Si permite que su aplicación se ejecute en Android 12, hay un nuevo indicador de mutabilidad PendingIntent. Si no desea que su PendingIntent sea mutado, use

PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);

    }else {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    }

Si desea que su PendingIntent sea mutado, use lo siguiente:

PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);

    }else {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    }

En la documentación de Google dice: Considere seriamente usar FLAG_IMMUTABLE, solo use FLAG_MUTABLE si alguna funcionalidad depende de qué PendingIntent sea mutable. El cambio debe ser sencillo. Además, asegúrese de agregar la siguiente dependencia la build.

//Work Manager dependency
implementation 'androidx.work:work-runtime:2.7.1'

Tenga en cuenta que actualmente la versión de dependencia del administrador de trabajo es 2.7.1. Puede actualizar la versión a la última si lo desea.