Реализация локальных уведомлений - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь реализовать локальные уведомления (с событиями кликов и уведомлениями HeadUP) для моего приложения для Android с использованием Xamarin.Forms.Я следовал документации Microsoft для локальных уведомлений, но я не знаю, как это реализовать. Может кто-нибудь поделиться с вами любым рабочим образцом для этого.

Спасибо.

1 Ответ

0 голосов
/ 15 февраля 2019

Из официального документа Android , есть два способа установить уровень важности.

enter image description here

Первое решение: (не работает)

Если приоритет уведомления помечен как Высокий, Макс или Полноэкранный режим, он получает уведомление об опережении.

Примеры условий, которые могут вызвать опрокидываниеуведомления включают в себя: Уведомление имеет высокий приоритет и использует рингтоны или вибрации. Используя физическое устройство, попробуйте выполнить следующее:

builder.SetVibrate(new long[0]);
builder.SetPriority((int)NotificationPriority.High);

Здесь аналогичное обсуждение Heads-up уведомления.

К сожалению, приведенное выше решение не работает.

Второе решение: (Работа)

Правильный путьв Xamarin Android можно установить свойство Channel . Если канал, созданный с помощью NotificationImportance.High, может отображать заголовки. Вы можете сослаться на этот официальный пример . И изменить CreateNotificationChannelметод следующим образом:

void CreateNotificationChannel()
    {
        if (Build.VERSION.SdkInt < BuildVersionCodes.O)
        {
            // Notification channels are new in API 26 (and not a part of the
            // support library). There is no need to create a notification 
            // channel on older versions of Android.
            return;
        }

        var name = Resources.GetString(Resource.String.channel_name);
        var description = GetString(Resource.String.channel_description);
        //Replace follow NotificationImportance.Default to NotificationImportance.High
        var channel = new NotificationChannel(CHANNEL_ID, name, NotificationImportance.High)
        {
            Description = description
        };



        var notificationManager = (NotificationManager) GetSystemService(NotificationService);
        notificationManager.CreateNotificationChannel(channel);
    }

enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...