private void Btn_edit_Click(object sender, EventArgs e) { if (notyBuilder == null) { Toast.MakeText(this, "هیچ نوتیفیکیشنی وجود ندارد", ToastLength.Short).Show(); } else { notyBuilder.SetContentTitle("Updated Notification"); notyBuilder.SetContentText("Changed to this message."); #region InboxStyle var inboxStyle = new Notification.InboxStyle(); inboxStyle.AddLine("hamed: Bananas on sale"); inboxStyle.AddLine("nili: Curious about your blog post"); inboxStyle.AddLine("saeed: Need a ride to Evolve?"); inboxStyle.SetSummaryText("+8 more"); // Plug this style into the builder: notyBuilder.SetStyle(inboxStyle); #endregion var notification = notyBuilder.Build(); var notyManager = GetSystemService(Context.NotificationService) as NotificationManager; notyManager.Notify(notyId, notification); } }
private void SendNotification(CorsoGiornaliero l) { System.Diagnostics.Debug.WriteLine("SEND NOTIFICATION"); // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; we're only using one PendingIntent (ID = 0): const int pendingIntentId = 0; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.UpdateCurrent); Notification.Builder builder = new Notification.Builder(this) .SetContentIntent(pendingIntent) .SetContentTitle(l.Note.ToUpper()) .SetContentText(l.Insegnamento + " - " + l.Ora) .SetSmallIcon(Resource.Drawable.UnibgOk); //builder.SetStyle(new Notification.BigTextStyle().BigText(longMess)); Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); inboxStyle.AddLine(l.Insegnamento); inboxStyle.AddLine(l.AulaOra); inboxStyle.AddLine(l.Docente); builder.SetStyle(inboxStyle); // Build the notification: Notification notification = builder.Build(); // Get the notification manager: NotificationManager notificationManager = this.GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationId = 1; notificationManager.Notify(notificationId, notification); }
public void ShowNotifications(string message) { if (_activityDestroyed) { return; } if (!ShowNotification) { return; } _notificationChatMessages.Add(message); var notificationStyle = new Notification.InboxStyle(); var notificationBiulder = CreateNotificationBuilder(); notificationBiulder.SetContentIntent(CreatePendingIntent()); var notificationManager = GetSystemService(NotificationService) as NotificationManager; notificationBiulder.SetStyle(notificationStyle); if (_notificationChatMessages.Count > 4) { for (var i = 0; i < 4; i++) { notificationStyle.AddLine(_notificationChatMessages[i]); } notificationStyle.AddLine("+" + (_notificationChatMessages.Count - 3) + "more."); } else { _notificationChatMessages.ForEach(x => notificationStyle.AddLine(x)); } notificationManager?.Notify(0, notificationBiulder.Build()); }
private void ExibirInboxNotificacao() { Notification.Builder builder = new Notification.Builder(this) .SetContentTitle ("Sample Notification") .SetContentText ("Hello World! This is my first action notification!") .SetDefaults (NotificationDefaults.Sound) .SetSmallIcon (Resource.Drawable.Icon); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Set the title and text of the notification: builder.SetContentTitle ("5 new messages"); builder.SetContentText ("*****@*****.**"); // Generate a message summary for the body of the notification: inboxStyle.AddLine ("Cheeta: Bananas on sale"); inboxStyle.AddLine ("George: Curious about your blog post"); inboxStyle.AddLine ("Nikko: Need a ride to Evolve?"); inboxStyle.SetSummaryText ("+2 more"); // Plug this style into the builder: builder.SetStyle (inboxStyle); Notification notification = builder.Build(); NotificationManager notificationManager = GetSystemService (Context.NotificationService) as NotificationManager; const int notificationId = 0; notificationManager.Notify (notificationId, notification); }
private void Button_Click(object sender, EventArgs e) { notyBuilder = new Notification.Builder(this); notyBuilder.SetContentTitle("عنوان پیام"); notyBuilder.SetContentText("متن پیام در اینجا قرار میگیرد"); notyBuilder.SetSmallIcon(Resource.Drawable.noty_small_icon); notyBuilder.SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.noty_large_icon)); notyBuilder.SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()); notyBuilder.SetDefaults(NotificationDefaults.Sound | NotificationDefaults.Vibrate); notyBuilder.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification)); notyBuilder.SetAutoCancel(true); notyBuilder.SetPriority((int)NotificationPriority.High); if ((int)Android.OS.Build.VERSION.SdkInt >= 21) { notyBuilder.SetVisibility(NotificationVisibility.Public); notyBuilder.SetCategory(Notification.CategoryEmail); } #region BigTextStyle Notification.BigTextStyle textStyle = new Notification.BigTextStyle(); string longTextMessage = "I went up one pair of stairs."; longTextMessage += " / Just like me. "; textStyle.BigText(longTextMessage); textStyle.SetSummaryText("The summary text goes here."); //notyBuilder.SetStyle(textStyle); #endregion #region InboxStyle var inboxStyle = new Notification.InboxStyle(); inboxStyle.AddLine("Cheeta: Bananas on sale"); inboxStyle.AddLine("George: Curious about your blog post"); inboxStyle.AddLine("Nikko: Need a ride to Evolve?"); inboxStyle.SetSummaryText("+2 more"); notyBuilder.SetStyle(inboxStyle); #endregion #region imageStyle var imageStyle = new Notification.BigPictureStyle(); imageStyle.BigPicture(BitmapFactory.DecodeResource(Resources, Resource.Drawable.facebook)); imageStyle.SetSummaryText("+2 more"); //notyBuilder.SetStyle(imageStyle); #endregion var notification = notyBuilder.Build(); var notyManager = GetSystemService(Context.NotificationService) as NotificationManager; notyManager.Notify(notyId, notification); }
public void SentNoficationForNewInovoice(List <Customer> countNewНotifyNewInvoiceCustomers) { if (countNewНotifyNewInvoiceCustomers.Count > 0) { // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; const int pendingIntentId = 1; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.OneShot); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Instantiate the builder and set notification elements: Notification.Builder bulideer = new Notification.Builder(this); bulideer.SetContentIntent(pendingIntent); bulideer.SetSmallIcon(Resource.Drawable.vik); // Set the title and text of the notification: bulideer.SetContentTitle("Нова фактура"); // bulideer.SetContentText("*****@*****.**"); foreach (var item in countNewНotifyNewInvoiceCustomers) { // Generate a message summary for the body of the notification: // if(item.DidGetNewInoviceToday == false) // { string money = item.MoneyToPay.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("bg-BG")); inboxStyle.AddLine($"Аб. номер: {item.Nomer.ToString()}, {money}"); bulideer.SetContentText($"Аб. номер: {item.Nomer.ToString()}, {money}"); // item.DidGetNewInoviceToday = true; // } } // Plug this style into the builder: bulideer.SetStyle(inboxStyle); // Build the notification: Notification notification11 = bulideer.Build(); // Get the notification manager: NotificationManager notificationManager1 = GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationIdd = 1; notificationManager1.Notify(notificationIdd, notification11); } }
//used to generate local notifications public void CreateNotification(dynamic response) { TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this); Intent wklIntent = new Intent(this, typeof(WorkListActivity)); stackBuilder.AddNextIntent(wklIntent); PendingIntent pendingIntent = stackBuilder.GetPendingIntent(0, PendingIntentFlags.OneShot); //id=0 Notification.Style style; if (response.Count == 1) { Notification.BigTextStyle textStyle = new Notification.BigTextStyle(); textStyle.BigText(response[0]["MSG_CONTENT"]); textStyle.SetSummaryText(response[0]["MSG_TITLE"]); style = textStyle; } else { Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); inboxStyle.AddLine(response[0]["MSG_CONTENT"]); inboxStyle.AddLine(response[1]["MSG_CONTENT"]); if (response.Count > 2) { inboxStyle.SetSummaryText("+" + (response.Count - 2) + " more"); } style = inboxStyle; } Notification.Builder builder = new Notification.Builder(Application.Context) .SetContentTitle("PeoplePlus Notification") .SetContentText("Pending Tasks in your WorkList Viewer") .SetSmallIcon(Resource.Drawable.login3) .SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.login3)) .SetAutoCancel(true) .SetContentIntent(pendingIntent); if ((int)Build.VERSION.SdkInt >= 21) { builder.SetVisibility(NotificationVisibility.Private) .SetCategory(Notification.CategoryAlarm) .SetCategory(Notification.CategoryCall) .SetStyle(style); } builder.SetPriority((int)NotificationPriority.High); builder.SetDefaults(NotificationDefaults.Sound | NotificationDefaults.Vibrate); Notification notification = builder.Build(); NotificationManager notificationManager = GetSystemService(NotificationService) as NotificationManager; notificationManager.Notify(0, notification); }
public void SentNotificationForReading(List <Customer> countНotifyReadingustomers) { if (countНotifyReadingustomers.Count > 0) { // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; const int pendingIntentId = 2; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.CancelCurrent); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Instantiate the builder and set notification elements: Notification.Builder bulideer = new Notification.Builder(this); bulideer.SetSmallIcon(Resource.Drawable.vik); bulideer.SetContentIntent(pendingIntent); // Set the title and text of the notification: bulideer.SetContentTitle("Ден на отчитане"); foreach (var cus in countНotifyReadingustomers) { // Generate a message summary for the body of the notification: string format = "dd.MM.yyyy"; string date = cus.StartReportDate.ToString(format); inboxStyle.AddLine($"Аб. номер: {cus.Nomer.ToString()}, {date}"); bulideer.SetContentText($"Аб. номер: {cus.Nomer.ToString()}, {date}"); } // Plug this style into the builder: bulideer.SetStyle(inboxStyle); // Build the notification: Notification notification11 = bulideer.Build(); // Get the notification manager: NotificationManager notificationManager1 = GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationIdd = 2; notificationManager1.Notify(notificationIdd, notification11); } }
public void SendNotification(CorsoGiornaliero l) { if (!Settings.Notify) { return; } // Logcat.Write("SEND NOTIFICATION"); Logcat.Write("Creazione Notifica"); Logcat.WriteDB(_db, "Creazione notifica"); Logcat.WriteDB(_db, l.Note.ToUpper() + l.Insegnamento + " - " + l.Date.ToShortDateString() + " - " + l.Ora); // Set up an intent so that tapping the notifications returns to this app: var context = Android.App.Application.Context; //var context = Forms.Context; Intent intent = new Intent(context, typeof(MainActivity)); Logcat.WriteDB(_db, "Intent created"); // Create a PendingIntent; we're only using one PendingIntent (ID = 0): const int pendingIntentId = 0; PendingIntent pendingIntent = PendingIntent.GetActivity(context, pendingIntentId, intent, PendingIntentFlags.UpdateCurrent); Logcat.WriteDB(_db, "PendingIntent created"); Notification.Builder builder = new Notification.Builder(context) .SetContentIntent(pendingIntent) .SetContentTitle(l.Note.ToUpper()) .SetContentText(l.Insegnamento + " - " + l.Date.ToShortDateString() + " - " + l.Ora) .SetSmallIcon(Resource.Drawable.ic_notification_school) .SetAutoCancel(true); //builder.SetStyle(new Notification.BigTextStyle().BigText(longMess)); Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); inboxStyle.AddLine(l.Insegnamento); inboxStyle.AddLine(l.Date.DayOfWeek + ", " + l.Date.ToShortDateString()); inboxStyle.AddLine(l.AulaOra); inboxStyle.AddLine(l.Docente); builder.SetStyle(inboxStyle); // Build the notification: Notification notification = builder.Build(); // Get the notification manager: NotificationManager notificationManager = context.GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: // const int notificationId = 1; var rnd = new System.Random(); notificationManager.Notify(rnd.Next(), notification); }
private void SentNotificationForOverdue(List <Customer> countНotifyInvoiceOverdueCustomers) { if (countНotifyInvoiceOverdueCustomers.Count > 0) { string countНotifyInvoiceOverdueCustomersAsString = JsonConvert.SerializeObject(countНotifyInvoiceOverdueCustomers); // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; const int pendingIntentId = 0; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.OneShot); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Instantiate the builder and set notification elements: Notification.Builder bulideer = new Notification.Builder(this) .SetContentIntent(pendingIntent) .SetSmallIcon(Resource.Drawable.vik); // Set the title and text of the notification: bulideer.SetContentTitle("Просрочване"); foreach (var item in countНotifyInvoiceOverdueCustomers) { // Generate a message summary for the body of the notification: string format = "dd.MM.yyyy"; string date = item.EndPayDate.ToString(format); inboxStyle.AddLine($"Аб. номер: {item.Nomer.ToString()}, {date}"); bulideer.SetContentText($"Аб. номер: {item.Nomer.ToString()}, {date}"); } // Plug this style into the builder: bulideer.SetStyle(inboxStyle); // Build the notification: Notification notification11 = bulideer.Build(); // Get the notification manager: NotificationManager notificationManager1 = GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationIdd = 0; notificationManager1.Notify(notificationIdd, notification11); } }
/// <summary> /// native android implementation to send notifications /// </summary> /// <param name="title"></param> /// <param name="description"></param> /// <param name="iconID"></param> /// <param name="entrys"></param> /// <param name="pluginName"></param> public void SendLocalNotification(string title, string description, int iconID, List <string> entrys, string pluginName) { var context = Xamarin.Forms.Forms.Context; var manager = (NotificationManager)context.GetSystemService(Context.NotificationService) as NotificationManager; var intent = context.PackageManager.GetLaunchIntentForPackage(context.PackageName); intent.PutExtra("PluginName", pluginName); // Create a PendingIntent; we're only using one PendingIntent (ID = 0): const int pendingIntentId = 0; PendingIntent pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.CancelCurrent); // Instantiate the builder and set notification elements: Notification.Builder builder = new Notification.Builder(Android.App.Application.Context) .SetContentIntent(pendingIntent) .SetContentTitle(title) .SetContentText(description) .SetSmallIcon(Resource.Drawable.icon); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); entrys.ForEach(x => inboxStyle.AddLine(x)); // Generate a message summary for the body of the notification: //inboxStyle.SetSummaryText("+2 more"); // Plug this style into the builder: builder.SetStyle(inboxStyle); // Build the notification: Notification notification = builder.Build(); // Publish the notification: const int notificationId = 0; manager.Notify(0, notification); }
/** * Creates an inbox style notification summarizing the unread messages * in the inbox * * @param incomingAlert The alert message from an Urban Airship push * @return An inbox style notification */ private Android.App.Notification CreateInboxNotification(string incomingAlert) { Context context = UAirship.Shared().ApplicationContext; IList <RichPushMessage> unreadMessages = RichPushInbox.Shared().UnreadMessages; int inboxUnreadCount = unreadMessages.Count; // The incoming message is not immediately made available to the inbox because it needs // to first fetch its contents. int totalUnreadCount = inboxUnreadCount + 1; Resources res = UAirship.Shared().ApplicationContext.Resources; string title = res.GetQuantityString(Resource.Plurals.inbox_notification_title, totalUnreadCount, totalUnreadCount); Bitmap largeIcon = BitmapFactory.DecodeResource(res, Resource.Drawable.ua_launcher); var style = new Notification.InboxStyle( new Notification.Builder(context) .SetContentTitle(title) .SetContentText(incomingAlert) .SetLargeIcon(largeIcon) .SetSmallIcon(Resource.Drawable.ua_notification_icon) .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification)) .SetNumber(totalUnreadCount)); // Add the incoming alert as the first line in bold style.AddLine(Html.FromHtml("<b>" + incomingAlert + "</b>")); // Add any extra messages to the notification style int extraMessages = Math.Min(EXTRA_MESSAGES_TO_SHOW, inboxUnreadCount); for (int i = 0; i < extraMessages; i++) { style.AddLine(unreadMessages [i].Title); } // If we have more messages to show then the EXTRA_MESSAGES_TO_SHOW, add a summary if (inboxUnreadCount > EXTRA_MESSAGES_TO_SHOW) { style.SetSummaryText(context.GetString(Resource.String.inbox_summary, inboxUnreadCount - EXTRA_MESSAGES_TO_SHOW)); } return(style.Build()); }
public void SentNotificationWithoutSubscribe(Message newMessage) { // string countНotifyInvoiceOverdueCustomersAsString = JsonConvert.SerializeObject(countНotifyInvoiceOverdueCustomers); // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; const int pendingIntentId = 3; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.OneShot); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Instantiate the builder and set notification elements: Notification.Builder bulideer = new Notification.Builder(this) .SetContentIntent(pendingIntent) .SetSmallIcon(Resource.Drawable.vik); // Set the title and text of the notification: bulideer.SetContentTitle("Съобщение от ВиК Русе"); foreach (var item in newMessage.Messages) { // Generate a message summary for the body of the notification: inboxStyle.AddLine($"{item.ToString()}"); bulideer.SetContentText($"{item.ToString()}"); } // Plug this style into the builder: bulideer.SetStyle(inboxStyle); // Build the notification: Notification notification11 = bulideer.Build(); // Get the notification manager: NotificationManager notificationManager1 = GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationIdd = 3; notificationManager1.Notify(notificationIdd, notification11); }
private void ButtonOnClick(object sender, EventArgs eventArgs) { // Pass the current button press count value to the next activity: Bundle valuesForActivity = new Bundle(); valuesForActivity.PutInt ("count", count); // When the user clicks the notification, SecondActivity will start up. Intent resultIntent = new Intent(this, typeof (SecondActivity)); // Pass some values to SecondActivity: resultIntent.PutExtras (valuesForActivity); // Construct a back stack for cross-task navigation: Android.App.TaskStackBuilder stackBuilder = Android.App.TaskStackBuilder.Create (this); stackBuilder.AddParentStack (Java.Lang.Class.FromType(typeof(SecondActivity))); stackBuilder.AddNextIntent (resultIntent); // Create the PendingIntent with the back stack: PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent (0, PendingIntentFlags.UpdateCurrent); Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Build the notification: NotificationCompat.Builder builder = new NotificationCompat.Builder (this) .SetAutoCancel (true) // Dismiss from the notif. area when clicked .SetContentIntent (resultPendingIntent) // Start 2nd activity when the intent is clicked. .SetContentTitle ("Button Clicked") // Set its title .SetNumber (count) // Display the count in the Content Info .SetSmallIcon(Resource.Drawable.Icon) // Display this icon .SetContentText (String.Format( "The button has been clicked {0} times.", count)); // The message to display. builder.SetDefaults((int)NotificationDefaults.Sound); // Finally, publish the notification: NotificationManager notificationManager = (NotificationManager)GetSystemService(Context.NotificationService); notificationManager.Notify(ButtonClickNotificationId, builder.Build()); // Increment the button press count: count++; }
/** * Creates an inbox style notification summarizing the unread messages * in the inbox * * @param incomingAlert The alert message from an Urban Airship push * @return An inbox style notification */ private Android.App.Notification CreateInboxNotification (string incomingAlert) { Context context = UAirship.Shared ().ApplicationContext; IList<RichPushMessage> unreadMessages = RichPushInbox.Shared ().UnreadMessages; int inboxUnreadCount = unreadMessages.Count; // The incoming message is not immediately made available to the inbox because it needs // to first fetch its contents. int totalUnreadCount = inboxUnreadCount + 1; Resources res = UAirship.Shared ().ApplicationContext.Resources; string title = res.GetQuantityString (Resource.Plurals.inbox_notification_title, totalUnreadCount, totalUnreadCount); Bitmap largeIcon = BitmapFactory.DecodeResource (res, Resource.Drawable.ua_launcher); var style = new Notification.InboxStyle ( new Notification.Builder (context) .SetContentTitle (title) .SetContentText (incomingAlert) .SetLargeIcon (largeIcon) .SetSmallIcon (Resource.Drawable.ua_notification_icon) .SetSound (RingtoneManager.GetDefaultUri (RingtoneType.Notification)) .SetNumber (totalUnreadCount)); // Add the incoming alert as the first line in bold style.AddLine (Html.FromHtml ("<b>" + incomingAlert + "</b>")); // Add any extra messages to the notification style int extraMessages = Math.Min (EXTRA_MESSAGES_TO_SHOW, inboxUnreadCount); for (int i = 0; i < extraMessages; i++) { style.AddLine (unreadMessages [i].Title); } // If we have more messages to show then the EXTRA_MESSAGES_TO_SHOW, add a summary if (inboxUnreadCount > EXTRA_MESSAGES_TO_SHOW) { style.SetSummaryText (context.GetString (Resource.String.inbox_summary, inboxUnreadCount - EXTRA_MESSAGES_TO_SHOW)); } return style.Build (); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it NotificationManager manager = (NotificationManager)GetSystemService(Context.NotificationService); Notification.Builder builder = BuildNormal(); Notification.InboxStyle bigStyle = new Notification.InboxStyle(builder); manager.Notify(NOTIFY_ID, bigStyle.SetSummaryText("Summary Text Here") .AddLine("Here is entry 1") .AddLine("Here is entry 2") .AddLine("Here is entry 3") .AddLine("Here is entry 4") .Build()); Finish(); }
static void AddNotificationPdv(List <string> pdvs) { if (pdvs.Count > 0) { var intent = new Intent(context, typeof(MenuPdvs)); PendingIntent pendingIntent = PendingIntent.GetActivity(context, (int)TipoNotificacao.NovosPdvs, intent, PendingIntentFlags.OneShot); var builder = new Notification.Builder(context) .SetContentIntent(pendingIntent) .SetDefaults(NotificationDefaults.All) .SetSmallIcon(Resource.Drawable.logosmartpromoter); var inboxStyle = new Notification.InboxStyle(); builder.SetContentTitle(context.Resources.GetString(Resource.String.novos_pdvs, pdvs.Count)); if (pdvs.Count > 3) { inboxStyle.AddLine(pdvs[0]); inboxStyle.AddLine(pdvs[1]); inboxStyle.AddLine(pdvs[2]); inboxStyle.SetSummaryText(context.Resources.GetString(Resource.String.novos_pdvs, pdvs.Count - 3)); } else { foreach (var item in pdvs) { inboxStyle.AddLine(item); } } builder.SetStyle(inboxStyle); Notification notification = builder.Build(); var notificationManager = context.GetSystemService(Context.NotificationService) as NotificationManager; notificationManager.Notify((int)TipoNotificacao.NovosPdvs, notification); } }
protected override void OnCreate(Bundle bundle) { TabLayoutResource = Resource.Layout.tabs; ToolbarResource = Resource.Layout.toolbar; base.OnCreate(bundle); notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; global::Xamarin.Forms.Forms.Init(this, bundle); var fooApp = new App(new AndroidInitializer()); #region 檢查是否是由通知開啟 App,並且依據通知,切換到適當頁面 //自訂通知被點擊後的動作 //當通知出現在通知欄之後,在習慣的趨使下,有很大的機率會被使用者點擊。 //所以應該要實作出通知被點擊後的動作,好比開啟哪個Activity之類的。 //通知被點擊後的動作可以使用PendingIntent來實作,PendingIntent並不是一個Intent,它是一個Intent的容器, // 可以傳入context物件,並以這個context的身份來做一些事情,例如開啟Activity、開啟Service,或是發送Broadcast。 // 如果要使通知可以在被點擊之後做點什麼事,可以使用Notification.Builder的setContentIntent方法來替通知加入PendingIntent fooLocalNotificationPayload = null; if (Intent.Extras != null) { if (Intent.Extras.ContainsKey("NotificationObject")) { string fooNotificationObject = Intent.Extras.GetString("NotificationObject", ""); fooLocalNotificationPayload = JsonConvert.DeserializeObject <LocalNotificationPayload>(fooNotificationObject); } } #endregion XFLocalNotificationDroid.App.fooLocalNotificationPayload = fooLocalNotificationPayload; LoadApplication(new App(new AndroidInitializer())); #region 訂閱要發送本地通知的事件 // 取得 Xamarin.Forms 中的 Prism 注入物件管理容器 IUnityContainer myContainer = (App.Current as PrismApplication).Container; var fooEvent = myContainer.Resolve <IEventAggregator>().GetEvent <LocalNotificationEvent>().Subscribe(x => { #region 建立本地訊息通知物件 Notification.Builder builder = new Notification.Builder(this) .SetContentTitle(x.ContentTitle) .SetContentText(x.ContentText) .SetSmallIcon(Resource.Drawable.ic_notification) .SetAutoCancel(true); // 決定是否要顯示大圖示 if (x.LargeIcon) { builder.SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.monkey_icon)); } #region 針對不同通知類型作出設定 switch (x.Style) { case LocalNotificationStyleEnum.Normal: break; case LocalNotificationStyleEnum.BigText: //builder.SetContentText(x.ContentText); var textStyle = new Notification.BigTextStyle(); textStyle.BigText(x.ContentText); textStyle.SetSummaryText(x.SummaryText); builder.SetStyle(textStyle); break; case LocalNotificationStyleEnum.Inbox: var inboxStyle = new Notification.InboxStyle(); foreach (var item in x.InboxStyleList) { inboxStyle.AddLine(item); } inboxStyle.SetSummaryText(x.SummaryText); builder.SetStyle(inboxStyle); break; case LocalNotificationStyleEnum.Image: var picStyle = new Notification.BigPictureStyle(); picStyle.BigPicture(BitmapFactory.DecodeResource(Resources, Resource.Drawable.x_bldg)); picStyle.SetSummaryText(x.SummaryText); builder.SetStyle(picStyle); break; default: break; } #endregion #region 設定 visibility switch (x.Visibility) { case LocalNotificationVisibilityEnum.Public: builder.SetVisibility(NotificationVisibility.Public); break; case LocalNotificationVisibilityEnum.Private: builder.SetVisibility(NotificationVisibility.Private); break; case LocalNotificationVisibilityEnum.Secret: builder.SetVisibility(NotificationVisibility.Secret); break; default: break; } #endregion #region 設定 priority switch (x.Priority) { case LocalNotificationPriorityEnum.Default: builder.SetPriority((int)NotificationPriority.Default); break; case LocalNotificationPriorityEnum.High: builder.SetPriority((int)NotificationPriority.High); break; case LocalNotificationPriorityEnum.Low: builder.SetPriority((int)NotificationPriority.Low); break; case LocalNotificationPriorityEnum.Maximum: builder.SetPriority((int)NotificationPriority.Max); break; case LocalNotificationPriorityEnum.Minimum: builder.SetPriority((int)NotificationPriority.Min); break; default: break; } #endregion #region 設定 category switch (x.Category) { case LocalNotificationCategoryEnum.Call: builder.SetCategory(LocalNotificationCategoryEnum.Call.ToString()); break; case LocalNotificationCategoryEnum.Message: builder.SetCategory(LocalNotificationCategoryEnum.Message.ToString()); break; case LocalNotificationCategoryEnum.Alarm: builder.SetCategory(LocalNotificationCategoryEnum.Alarm.ToString()); break; case LocalNotificationCategoryEnum.Email: builder.SetCategory(LocalNotificationCategoryEnum.Email.ToString()); break; case LocalNotificationCategoryEnum.Event: builder.SetCategory(LocalNotificationCategoryEnum.Event.ToString()); break; case LocalNotificationCategoryEnum.Promo: builder.SetCategory(LocalNotificationCategoryEnum.Promo.ToString()); break; case LocalNotificationCategoryEnum.Progress: builder.SetCategory(LocalNotificationCategoryEnum.Progress.ToString()); break; case LocalNotificationCategoryEnum.Social: builder.SetCategory(LocalNotificationCategoryEnum.Social.ToString()); break; case LocalNotificationCategoryEnum.Error: builder.SetCategory(LocalNotificationCategoryEnum.Error.ToString()); break; case LocalNotificationCategoryEnum.Transport: builder.SetCategory(LocalNotificationCategoryEnum.Transport.ToString()); break; case LocalNotificationCategoryEnum.System: builder.SetCategory(LocalNotificationCategoryEnum.System.ToString()); break; case LocalNotificationCategoryEnum.Service: builder.SetCategory(LocalNotificationCategoryEnum.Service.ToString()); break; case LocalNotificationCategoryEnum.Recommendation: builder.SetCategory(LocalNotificationCategoryEnum.Recommendation.ToString()); break; case LocalNotificationCategoryEnum.Status: builder.SetCategory(LocalNotificationCategoryEnum.Status.ToString()); break; default: break; } #endregion #region 準備設定當使用者點選通知之後要做的動作 // Setup an intent for SecondActivity: Intent secondIntent = new Intent(this, typeof(MainActivity)); // 設定當使用點選這個通知之後,要傳遞過去的資料 secondIntent.PutExtra("NotificationObject", JsonConvert.SerializeObject(x)); // 若在首頁且使用者按下回上頁實體按鈕,則會離開這個 App TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this); stackBuilder.AddNextIntent(secondIntent); PendingIntent pendingIntent = stackBuilder.GetPendingIntent(pendingIntentId++, PendingIntentFlags.OneShot); // Uncomment this code to setup an intent so that notifications return to this app: // Intent intent = new Intent (this, typeof(MainActivity)); // const int pendingIntentId = 0; // pendingIntent = PendingIntent.GetActivity (this, pendingIntentId, intent, PendingIntentFlags.OneShot); // builder.SetContentText("Hello World! This is my first action notification!"); // Launch SecondActivity when the users taps the notification: builder.SetContentIntent(pendingIntent); // 產生一個 notification 物件 Notification notification = builder.Build(); #region 決定是否要發出聲音 if (x.Sound) { notification.Defaults |= NotificationDefaults.Sound; } #endregion #region 決定是否要有震動 if (x.Vibrate) { notification.Defaults |= NotificationDefaults.Vibrate; } #endregion // 顯示本地通知: notificationManager.Notify(notificationId++, notification); // 解開底下程式碼註解,將會於五秒鐘之後,才會發生本地通知 // Thread.Sleep(5000); // builder.SetContentTitle("Updated Notification"); // builder.SetContentText("Changed to this message after five seconds."); // notification = builder.Build(); // notificationManager.Notify(notificationId, notification); #endregion #endregion }); #endregion }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set the view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get the notifications manager: NotificationManager notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; //.......................................................................... // Edit box: // Find the notification edit text box in the layout: notifyMsg = FindViewById <EditText>(Resource.Id.notifyText); //.......................................................................... // Selection Spinners: // The spinners in this file use the strings defined in Resources/values/arrays.xml. // Find the Style spinner in the layout and configure its adapter. Spinner styleSpinner = FindViewById <Spinner>(Resource.Id.styleSpinner); var styleAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.notification_style, Android.Resource.Layout.SimpleSpinnerDropDownItem); styleSpinner.Adapter = styleAdapter; // Handler for Style spinner, changes the text in the text box: styleSpinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs> (styleSpinnerSelected); // Find the Visibility spinner in the layout and configure its adapter: Spinner visibilitySpinner = FindViewById <Spinner>(Resource.Id.visibilitySpinner); var visibilityAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.notification_visibility, Android.Resource.Layout.SimpleSpinnerDropDownItem); visibilitySpinner.Adapter = visibilityAdapter; // Find the Priority spinner in the layout and configure its adapter: Spinner prioritySpinner = FindViewById <Spinner>(Resource.Id.prioritySpinner); var priorityAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.notification_priority, Android.Resource.Layout.SimpleSpinnerDropDownItem); prioritySpinner.Adapter = priorityAdapter; // Find the Category spinner in the layout and configure its adapter: Spinner categorySpinner = FindViewById <Spinner>(Resource.Id.categorySpinner); var categoryAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.notification_category, Android.Resource.Layout.SimpleSpinnerDropDownItem); categorySpinner.Adapter = categoryAdapter; // Handler for Style spinner: changes the text in the text box: styleSpinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs> (styleSpinnerSelected); //.......................................................................... // Option Switches: // Get large-icon, sound, and vibrate switches from the layout: Switch largeIconSw = FindViewById <Switch>(Resource.Id.largeIconSwitch); Switch soundSw = FindViewById <Switch>(Resource.Id.soundSwitch); Switch vibrateSw = FindViewById <Switch>(Resource.Id.vibrateSwitch); //.......................................................................... // Notification Launch button: // Get notification launch button from the layout: Button launchBtn = FindViewById <Button>(Resource.Id.launchButton); // Handler for the notification launch button. When this button is clicked, this // handler code takes the following steps, in order: // // 1. Instantiates the builder. // 2. Calls methods on the builder to optionally plug in the large icon, extend // the style (if called for by a spinner selection), set the visibility, set // the priority, and set the category. // 3. Uses the builder to instantiate the notification. // 4. Turns on sound and vibrate (if selected). // 5. Uses the Notification Manager to launch the notification. launchBtn.Click += delegate { // Instantiate the notification builder: Notification.Builder builder = new Notification.Builder(this) .SetContentTitle("Sample Notification") .SetContentText(notifyMsg.Text) .SetSmallIcon(Resource.Drawable.ic_notification) .SetAutoCancel(true); // Add large icon if selected: if (largeIconSw.Checked) { builder.SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.monkey_icon)); } // Extend style based on Style spinner selection. switch (styleSpinner.SelectedItem.ToString()) { case "Big Text": // Extend the message with the big text format style. This will // use a larger screen area to display the notification text. // Set the title for demo purposes: builder.SetContentTitle("Big Text Notification"); // Using the Big Text style: var textStyle = new Notification.BigTextStyle(); // Use the text in the edit box at the top of the screen. textStyle.BigText(notifyMsg.Text); textStyle.SetSummaryText("The summary text goes here."); // Plug this style into the builder: builder.SetStyle(textStyle); break; case "Inbox": // Present the notification in inbox format instead of normal text style. // Note that this does not display the notification message entered // in the edit text box; instead, it displays the fake email inbox // summary constructed below. // Using the inbox style: var inboxStyle = new Notification.InboxStyle(); // Set the title of the notification: builder.SetContentTitle("5 new messages"); builder.SetContentText("*****@*****.**"); // Generate inbox notification text: inboxStyle.AddLine("Cheeta: Bananas on sale"); inboxStyle.AddLine("George: Curious about your blog post"); inboxStyle.AddLine("Nikko: Need a ride to Evolve?"); inboxStyle.SetSummaryText("+2 more"); // Plug this style into the builder: builder.SetStyle(inboxStyle); break; case "Image": // Extend the message with image (big picture) format style. This displays // the Resources/drawables/x_bldg.jpg image in the notification body. // Set the title for demo purposes: builder.SetContentTitle("Image Notification"); // Using the Big Picture style: var picStyle = new Notification.BigPictureStyle(); // Convert the image file to a bitmap before passing it into the style // (there is no exception handler since we know the size of the image): picStyle.BigPicture(BitmapFactory.DecodeResource(Resources, Resource.Drawable.x_bldg)); picStyle.SetSummaryText("The summary text goes here."); // Alternately, uncomment this code to use an image from the SD card. // (In production code, wrap DecodeFile in an exception handler in case // the image is too large and throws an out of memory exception.): // BitmapFactory.Options options = new BitmapFactory.Options(); // options.InSampleSize = 2; // string imagePath = "/sdcard/Pictures/my-tshirt.jpg"; // picStyle.BigPicture(BitmapFactory.DecodeFile(imagePath, options)); // picStyle.SetSummaryText("Check out my new T-shirt!"); // Plug this style into the builder: builder.SetStyle(picStyle); break; default: // Normal text notification is the default. break; } // Set visibility based on Visibility spinner selection: switch (visibilitySpinner.SelectedItem.ToString()) { case "Public": builder.SetVisibility(NotificationVisibility.Public); break; case "Private": builder.SetVisibility(NotificationVisibility.Private); break; case "Secret": builder.SetVisibility(NotificationVisibility.Secret); break; } // Set priority based on Priority spinner selection: switch (prioritySpinner.SelectedItem.ToString()) { case "High": builder.SetPriority((int)NotificationPriority.High); break; case "Low": builder.SetPriority((int)NotificationPriority.Low); break; case "Maximum": builder.SetPriority((int)NotificationPriority.Max); break; case "Minimum": builder.SetPriority((int)NotificationPriority.Min); break; default: builder.SetPriority((int)NotificationPriority.Default); break; } // Set category based on Category spinner selection: switch (categorySpinner.SelectedItem.ToString()) { case "Call": builder.SetCategory(Notification.CategoryCall); break; case "Message": builder.SetCategory(Notification.CategoryMessage); break; case "Alarm": builder.SetCategory(Notification.CategoryAlarm); break; case "Email": builder.SetCategory(Notification.CategoryEmail); break; case "Event": builder.SetCategory(Notification.CategoryEvent); break; case "Promo": builder.SetCategory(Notification.CategoryPromo); break; case "Progress": builder.SetCategory(Notification.CategoryProgress); break; case "Social": builder.SetCategory(Notification.CategorySocial); break; case "Error": builder.SetCategory(Notification.CategoryError); break; case "Transport": builder.SetCategory(Notification.CategoryTransport); break; case "System": builder.SetCategory(Notification.CategorySystem); break; case "Service": builder.SetCategory(Notification.CategoryService); break; case "Recommendation": builder.SetCategory(Notification.CategoryRecommendation); break; case "Status": builder.SetCategory(Notification.CategoryStatus); break; default: builder.SetCategory(Notification.CategoryStatus); break; } // Setup an intent for SecondActivity: Intent secondIntent = new Intent(this, typeof(SecondActivity)); // Pass the current notification string value to SecondActivity: secondIntent.PutExtra("message", notifyMsg.Text); // Pressing the Back button in SecondActivity exits the app: TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this); // Add the back stack for the intent: stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(SecondActivity))); // Push the intent (that starts SecondActivity) onto the stack. The // pending intent can be used only once (one shot): stackBuilder.AddNextIntent(secondIntent); const int pendingIntentId = 0; PendingIntent pendingIntent = stackBuilder.GetPendingIntent(pendingIntentId, PendingIntentFlags.OneShot); // Uncomment this code to setup an intent so that notifications return to this app: // Intent intent = new Intent (this, typeof(MainActivity)); // const int pendingIntentId = 0; // pendingIntent = PendingIntent.GetActivity (this, pendingIntentId, intent, PendingIntentFlags.OneShot); // builder.SetContentText("Hello World! This is my first action notification!"); // Launch SecondActivity when the users taps the notification: builder.SetContentIntent(pendingIntent); // Build the notification: Notification notification = builder.Build(); // Turn on sound if the sound switch is on: if (soundSw.Checked) { notification.Defaults |= NotificationDefaults.Sound; } // Turn on vibrate if the sound switch is on: if (vibrateSw.Checked) { notification.Defaults |= NotificationDefaults.Vibrate; } // Notification ID used for all notifications in this app. // Reusing the notification ID prevents the creation of // numerous different notifications as the user experiments // with different notification settings -- each launch reuses // and updates the same notification. const int notificationId = 1; // Launch notification: notificationManager.Notify(notificationId, notification); // Uncomment this code to update the notification 5 seconds later: // Thread.Sleep(5000); // builder.SetContentTitle("Updated Notification"); // builder.SetContentText("Changed to this message after five seconds."); // notification = builder.Build(); // notificationManager.Notify(notificationId, notification); }; }
public static void ShowNotification(Context context) { // Instantiate the builder and set notification elements: Notification.Builder builder = new Notification.Builder(context) .SetAutoCancel(true) .SetContentTitle("Sample Notification") .SetContentText("Hello World! This is my first notification!") .SetDefaults(NotificationDefaults.Sound | NotificationDefaults.Vibrate) .SetSmallIcon(Resource.Drawable.logo) .SetLargeIcon(BitmapFactory.DecodeResource(context.Resources, Resource.Drawable.logo)); builder.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Ringtone)); // Setup an intent for SecondActivity: Intent secondIntent = new Intent(context, typeof(UserNotification)); // Pass some information to SecondActivity: secondIntent.PutExtra("message", "Greetings from MainActivity!"); // Create a task stack builder to manage the back stack: TaskStackBuilder stackBuilder = TaskStackBuilder.Create(context); // Add all parents of SecondActivity to the stack: stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(UserNotification))); // Push the intent that starts SecondActivity onto the stack: stackBuilder.AddNextIntent(secondIntent); // Obtain the PendingIntent for launching the task constructed by // stackbuilder. The pending intent can be used only once (one shot): const int pendingIntentId = 0; PendingIntent pendingIntent = stackBuilder.GetPendingIntent(pendingIntentId, PendingIntentFlags.OneShot); int totalunread = 10; if (totalunread > 0) { // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Set the title and text of the notification: builder.SetContentIntent(pendingIntent); builder.SetContentTitle(totalunread + " new messages"); builder.SetContentText("WMS Trips"); //if (dtNotify.Rows.Count > 3) //{ // for (int i = 0; i < dtNotify.Rows.Count; i++) // { // if (i == 3) // { // i = int.MaxValue; // break; // } // else // { // inboxStyle.AddLine(string.Format("{0}: {1}", dtNotify.Rows[i]["Title"].ToString(), dtNotify.Rows[i]["Description"].ToString())); // } // } // inboxStyle.SetSummaryText("+"+(dtNotify.Rows.Count - 3) + " more"); //} //else //{ // for (int i = 0; i < dtNotify.Rows.Count; i++) // { // inboxStyle.AddLine(string.Format("{0}: {1}", dtNotify.Rows[i]["Title"].ToString(), dtNotify.Rows[0]["Description"].ToString())); // } //} // Plug this style into the builder: builder.SetStyle(inboxStyle); // Build the notification: Notification notification = builder.Build(); // Get the notification manager: NotificationManager notificationManager = context.GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationId = 0; notificationManager.Notify(notificationId, notification); } }
public void SentNotificationForReading(List <Customer> countНotifyReadingustomers) { if (countНotifyReadingustomers.Count > 0) { // Set up an intent so that tapping the notifications returns to this app: Intent intent = new Intent(this, typeof(MainActivity)); // Create a PendingIntent; const int pendingIntentId = 2; PendingIntent pendingIntent = PendingIntent.GetActivity(this, pendingIntentId, intent, PendingIntentFlags.OneShot); // Instantiate the Inbox style: Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); // Instantiate the builder and set notification elements: Notification.Builder bulideer = new Notification.Builder(this); bulideer.SetSmallIcon(Resource.Drawable.vik); bulideer.SetContentIntent(pendingIntent); // Set the title and text of the notification: bulideer.SetContentTitle("Ден на отчитане"); foreach (var cus in countНotifyReadingustomers) { // if(cus.DidGetReadingToday == false) // { // Generate a message summary for the body of the notification: string format = "dd.MM.yyyy"; string date = cus.StartReportDate.ToString(format); inboxStyle.AddLine($"Аб. номер: {cus.Nomer.ToString()}, {date}"); bulideer.SetContentText($"Аб. номер: {cus.Nomer.ToString()}, {date}"); //cus.DidGetReadingToday = true; //cus.DidGetAnyNotificationToday = true; //Customer notifiedCustomer = mAllUpdateCustomerFromApi.FirstOrDefault(c => c.EGN == cus.EGN); //mAllUpdateCustomerFromApi.Remove(notifiedCustomer); //mAllUpdateCustomerFromApi.Add(cus); // } } //SaveCustomersFromApiInPhone(mAllUpdateCustomerFromApi); // Plug this style into the builder: bulideer.SetStyle(inboxStyle); // Build the notification: Notification notification11 = bulideer.Build(); // Get the notification manager: NotificationManager notificationManager1 = GetSystemService(Context.NotificationService) as NotificationManager; // Publish the notification: const int notificationIdd = 2; notificationManager1.Notify(notificationIdd, notification11); // ///// saveeeee // ISharedPreferences pref = //Application.Context.GetSharedPreferences("PREFERENCE_NAME", FileCreationMode.Private); // // convert the list to json // var listOfCustomersAsJson = JsonConvert.SerializeObject(mAllUpdateCustomerFromApi); // mCustomers // ISharedPreferencesEditor editor = pref.Edit(); // // set the value to Customers key // editor.PutString("Customers", listOfCustomersAsJson); // // commit the changes // editor.Commit(); } }