private static string SerializeNotification(AndroidNotification notification) { var xmlSerializer = new XmlSerializer(notification.GetType()); using (var stringWriter = new StringWriter()) { xmlSerializer.Serialize(stringWriter, notification); return(stringWriter.ToString()); } }
/// <summary> /// Show a local notification at a specified time /// </summary> /// <param name="title">Title of the notification</param> /// <param name="body">Body or description of the notification</param> /// <param name="id">Id of the notification</param> /// <param name="notifyTime">Time to show notification</param> public static void Show(string title, string body, int id, DateTime notifyTime) { var intent = CreateIntent(id); var localNotification = new AndroidNotification { Title = title, Body = body, Id = id, NotifyTime = notifyTime, }; var serializedNotification = SerializeNotification(localNotification); intent.PutExtra(ScheduledAlarmHandler.LocalNotificationKey, serializedNotification); var pendingIntent = PendingIntent.GetBroadcast(Application.Context, id, intent, PendingIntentFlags.UpdateCurrent); var triggerTime = NotifyTimeInMilliseconds(localNotification.NotifyTime); AlarmManager.Set(AlarmType.RtcWakeup, triggerTime, pendingIntent); }