Как получить уведомление pu sh для быстрого отображения перед переходом на панель уведомлений - PullRequest
0 голосов
/ 21 апреля 2020

Я не уверен, как это называется, когда уведомление делает «быстрое отображение» на вашем устройстве, прежде чем просто перейти к панели уведомлений. Пример того, о чем я говорю, можно найти здесь (gif в разделе Android Output). Вы можете видеть, когда он нажимает кнопку, чтобы получить уведомление, оно отображает уведомление в течение 2-3 секунд, прежде чем оно исчезает, и остается только значок в области уведомлений.

Как я могу получить это для моих уведомлений ? Прямо сейчас, когда я тестирую уведомление, отправленное почтальоном, оно просто отправляется на мое устройство и переходит к отображению значка на панели уведомлений без быстрого отображения.

Вот мое SendLocalNotification метод в моем FirebaseService классе (я предполагаю, что это настройка, где я создаю уведомление, но я могу ошибаться):

void SendLocalNotification(string body)
    {
        //Unique request code to avoid PendingIntent collision.
        var requestCode = new Random().Next();

        // accept intent
        var acceptIntent = new Intent(this, typeof(MainActivity));
        acceptIntent.SetAction("ACCEPT_ACTION");
        var pendingIntentAccept = PendingIntent.GetActivity(this, requestCode, acceptIntent, PendingIntentFlags.OneShot);

        // decline intent
        var declineIntent = new Intent(this, typeof(MainActivity));
        declineIntent.SetAction("DECLINE_ACTION");
        var pendingIntentDecline = PendingIntent.GetActivity(this, requestCode, declineIntent, PendingIntentFlags.OneShot);

        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.SingleTop);

        var notificationBuilder = new NotificationCompat.Builder(this)
            .AddAction(0, "Accept", pendingIntentAccept)
            .AddAction(0, "Decline", pendingIntentDecline)

            .SetContentTitle("Content Title")
            .SetSmallIcon(Resource.Drawable.laundry_basket_icon_15875)
            .SetContentText("content text")
            .SetContentInfo("content info")
            .SetSubText("sub text")                
            .SetAutoCancel(true)
            .SetShowWhen(true)
            .SetContentIntent(pendingIntentAccept)
            .SetContentIntent(pendingIntentDecline);

        if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
        {
            notificationBuilder.SetChannelId(AppConstants.NotificationChannelName);
        }

        var notificationManager = NotificationManager.FromContext(this);
        notificationManager.Notify(0, notificationBuilder.Build());
    }

Пожалуйста, дайте мне знать, если код нужен из других классов.

...