在 API 31+ 上,通知栏的操作要求必须指定 actionIntent,不能只依靠 setOnClickPendingIntent 方法。因此,您需要将原报错代码修改为以下示例:
val actionIntent = Intent(context, YourReceiver::class.java)
actionIntent.action = YOUR_ACTION_STRING
val pendingIntent = PendingIntent.getBroadcast(context, 0, actionIntent, PendingIntent.FLAG_UPDATE_CURRENT)
val builder = NotificationCompat.Builder(context, CHANNEL_ID)
.setContentIntent(notificationPendingIntent)
.addAction(R.drawable.ic_notification_dismiss, getString(R.string.dismiss), pendingIntent)
注意,在上述示例中,您需要自定义一个 Receiver 类型来处理操作,同时将 YOUR_ACTION_STRING 替换为您的操作字符串。