protected override void OnMessage(Context context, Intent intent) { //PowerManager.WakeLock sWakeLock; //var pm = PowerManager.FromContext(context); //sWakeLock = pm.NewWakeLock(WakeLockFlags.Partial, "GCM Broadcast Reciever Tag"); //sWakeLock.Acquire(); var msg = new StringBuilder(); if (intent != null && intent.Extras != null) { foreach (var key in intent.Extras.KeySet()) { msg.AppendLine(key + "=" + intent.Extras.Get(key)); } string messageText = intent.Extras.GetString("message"); if (!string.IsNullOrEmpty(messageText)) { var recdMessage = messageText; Common.Helpers.Settings.LastMessage = recdMessage; PushNoticationMessage loginAttemptMessage = JsonConvert.DeserializeObject <PushNoticationMessage>(recdMessage); PlatformPushNotificationImplementation.Platform.PushNotificationReceived(recdMessage, recdMessage); CreateNotification(loginAttemptMessage); } } //sWakeLock.Release(); }
private async Task ProcessNotification(ReceivedMessageEventArgs e) { if (e != null && e.Content != null) { PushNoticationMessage recdMessage = JsonConvert.DeserializeObject <PushNoticationMessage>(e.Content); await NavigationService.NavigateAsync("/Index/Navigation/Home"); } }
public override void OnMessageReceived(string from, Bundle data) { Log.Info(AppConstants.TAG, "Message Received From " + from); var recdMessage = data.GetString("message"); Settings.Current.LastMessage = recdMessage; PushNoticationMessage loginAttemptMessage = JsonConvert.DeserializeObject <PushNoticationMessage>(recdMessage); //PlatformPushNotificationImplementation.Platform.PushNotificationReceived(recdMessage, recdMessage); Log.Info(AppConstants.TAG, "Creating Local Notification"); CreateNotification(loginAttemptMessage); Log.Info(AppConstants.TAG, "Created Local Notification"); }
void CreateNotification(PushNoticationMessage pushMessage) { try { // Get the notifications manager: NotificationManager notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; // Instantiate the notification builder: //TODO: Get the Name of the App from Manifest Notification.Builder builder = new Notification.Builder(this) .SetContentTitle("Quick Task") .SetContentText(pushMessage.Title) .SetAutoCancel(true) .SetSmallIcon(Resource.Drawable.icon) .SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.icon)); builder.SetVisibility(NotificationVisibility.Public); builder.SetPriority((int)NotificationPriority.High); builder.SetCategory(Notification.CategoryMessage); //Setup an intent for the Main Activity: Intent secondIntent = new Intent(this, typeof(MainActivity)); secondIntent.PutExtra("recdMessage", Settings.Current.LastMessage); // Pressing the Back button in SecondActivity exits the app: Android.App.TaskStackBuilder stackBuilder = Android.App.TaskStackBuilder.Create(this); // Add the back stack for the intent: stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity))); // 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); builder.SetContentIntent(pendingIntent); // Build the notification: Notification notification = builder.Build(); notification.Defaults |= NotificationDefaults.Sound; // 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 = 6; // Launch notification: notificationManager.Notify(notificationId, notification); Log.Info(AppConstants.TAG, "Local Notification Sent"); } catch (Exception ex) { Log.Info(AppConstants.TAG, "Local Notify Failed with " + ex.Message); } }
void CreateNotification(PushNoticationMessage pushedMessage) { // Get the notifications manager: NotificationManager notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; // Instantiate the notification builder: Notification.Builder builder = new Notification.Builder(this) .SetContentTitle("WK Authenticator") .SetContentText(pushedMessage.Title) .SetAutoCancel(true) .SetSmallIcon(Resource.Drawable.icon) .SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.icon)); builder.SetVisibility(NotificationVisibility.Public); builder.SetPriority((int)NotificationPriority.High); builder.SetCategory(Notification.CategoryMessage); //Add Message Information to the Main Activity Intent - This will be shown on Tap Of the Notified Message Intent secondIntent = new Intent(this, typeof(MainActivity)); // Pass the current notification string value to SecondActivity secondIntent.PutExtra("recdMessage", Common.Helpers.Settings.LastMessage); // Pressing the Back button in SecondActivity exits the app: Android.App.TaskStackBuilder stackBuilder = Android.App.TaskStackBuilder.Create(this); // Add the back stack for the intent: stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity))); // 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); builder.SetContentIntent(pendingIntent); // Build the notification: Notification notification = builder.Build(); notification.Defaults |= NotificationDefaults.Sound; // 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 = 0; // Launch notification: notificationManager.Notify(notificationId, notification); }