protected override void AddNotificationRequestInternal(UM_NotificationRequest request, Action <SA_Result> callback) { try { var builder = new AN_NotificationCompat.Builder(); builder.SetContentTitle(request.Content.Title); builder.SetContentText(request.Content.Body); if (request.Content.BadgeNumber != -1) { builder.SetNumber(request.Content.BadgeNumber); } if (string.IsNullOrEmpty(request.Content.SoundName)) { builder.SetDefaults(AN_Notification.DEFAULT_LIGHTS | AN_Notification.DEFAULT_SOUND); } else { string soundName = SA_AssetDatabase.GetAssetNameWithoutExtension(request.Content.SoundName); builder.SetSound(soundName); } if (!string.IsNullOrEmpty(request.Content.IconName)) { string iconName = SA_AssetDatabase.GetAssetNameWithoutExtension(request.Content.IconName); builder.SetSmallIcon(iconName); } if (request.Content.LargeIcon != null) { builder.SetLargeIcon(request.Content.LargeIcon); } UM_TimeIntervalNotificationTrigger timeIntervalTrigger = (UM_TimeIntervalNotificationTrigger)request.Trigger; var trigger = new AN_AlarmNotificationTrigger(); trigger.SetDate(TimeSpan.FromSeconds(timeIntervalTrigger.Interval)); trigger.SerRepeating(timeIntervalTrigger.Repeating); var android_request = new AN_NotificationRequest(request.Identifier, builder, trigger); AN_NotificationManager.Schedule(android_request); callback.Invoke(new SA_Result()); } catch (Exception ex) { var error = new SA_Error(100, ex.Message); callback.Invoke(new SA_Result(error)); } }