Уведомление Android с помощью StartForeground и NotificationManager.NotifyAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Уведомление Android с помощью StartForeground и NotificationManager.Notify

Сообщение Гость »


Я запускаю приоритетную службу для мониторинга местоположения с помощью приведенного ниже кода.

string content = "Отслеживание началось. Вы можете изменить настройки отслеживания..."; Построитель NotificationCompat.Builder = новый NotificationCompat.Builder(это, NOTIFICATION_CHANNEL_ID) .SetDefaults((int)NotificationDefaults.All) .SetSmallIcon(Resource.Drawable.notification) .SetVibrate(new long[] { 100, 200, 300, 400, 500, 400, 300, 200, 400 }) .SetSound(ноль) .SetChannelId(NOTIFICATION_CHANNEL_ID) .SetPriority(NotificationCompat.PriorityDefault) .SetAutoCancel(истина) .SetContentTitle("Умный офис") .SetContentText(содержимое) .SetOngoing(ложь); StartForeground(NOTIFICATION_SERVICE_ID, builder.Build(), Android.Content.PM.ForegroundService.TypeLocation); Это уведомление не отключается при пролистывании или нажатии, поскольку это служба переднего плана и не имеет намерения, как я и хочу.

Затем, когда пользователь входит в регион, я создаю уведомление с помощью SetAutoCancel(true) и SetContentIntent(pendingIntent), как показано ниже.

var pendingIntent = PendingIntent.GetActivity(this, 0, Intent, PendingIntentFlags.UpdateCurrent); Notification.Builder NotificationBuilder = новый Notification.Builder(это, NOTIFICATION_CHANNEL_ID) .SetSmallIcon(Resource.Drawable.notification) .SetContentTitle("Умный офис") .SetContentText(сообщение) .SetAutoCancel(истина) .SetContentIntent(pendingIntent) .SetOngoing(ложь); вар NotificationManager = (NotificationManager) GetSystemService (NotificationService); NotificationManager.Notify(NOTIFICATION_SERVICE_ID, NotificationBuilder.Build()); Теперь я хочу, чтобы это уведомление исчезало, если провести пальцем по нему или щелкнуть по нему. При нажатии открывается правильное намерение, но уведомление само по себе не исчезает. В чем причина этого?

Примечание. Если я покажу это уведомление перед запуском службы переднего плана (т. е. перед StartForeground(NOTIFICATION_SERVICE_ID, builder.Build(), Android.Content.PM.ForegroundService.TypeLocation);), то я смогу смахнуть уведомление.< /п> Заранее спасибо.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»