Уведомления в настоящее время выключены , и вы не будете получать обновления. Чтобы включить их, перейдите в Настройки уведомлений на странице Профиль .
Мы обнаружили следующую личную информацию в вашем сообщении:
Эта информация будет видна всем, кто посещает или подписывается на уведомления об этом сообщении. Вы уверены, что хотите продолжить?
Перейдите на страницу юридической помощи, чтобы запросить изменение содержимого по юридическим причинам.
Перейдите на страницу юридической помощи, чтобы запросить изменение содержимого по юридическим причинам.
Уведомление Android Heads-up исчезает после несколько секунд
Я бы хотел, чтобы уведомление не исчезало через несколько секунд. Поэтому я создал такое уведомление:
NotificationCompat.Builder builder = новый NotificationCompat.Builder (контекст); builder.setSmallIcon (R.drawable.cast_ic_notification_small_icon) .setDefaults (Notification.FLAG_ONGOING_EVENT) .setPriority (Notification.PRIORITY_HIGH) .setContentTitle (notificationDetails.getSubject () (contextResource) .setContentText). .getColor (R.color.colorPrimary)) .setOngoing (true);
и установка FLAG_ONGOING_EVENT и метода setOngoing (true).
но через несколько секунд уведомление продолжает исчезать. Я хочу, чтобы уведомление исчезало только тогда, когда пользователь нажимает на. Спасибо.
Продолжительность предупреждающего уведомления не может может быть изменен. Он устанавливается на уровне ОС. Зависит от ОС, сколько времени на это отводится.
Это Фактически возможно сделать постоянное оповещение. Уловка заключается в использовании setFullScreenIntent
. Если вы не хотите, чтобы ваше уведомление имело полноэкранную версию, вы можете использовать фиктивное намерение, которое фактически не запускает никаких действий, например:
PendingIntent pendingIntent = PendingIntent.getActivity (context, 0, new Intent (), 0); notificationBuilder.setFullScreenIntent (pendingIntent, true);
Это взлом, но поведение имеет некоторый смысл. Если приложение пытается показать полноэкранное уведомление, то это должно быть важное событие, например сигнал тревоги или телефонный звонок. Если телефон решит не отображать полноэкранное уведомление, он, вероятно, все равно должен показывать что-то постоянное, пока пользователь не примет меры.
Это работает на телефонах, которые я тестировал, но поведение не такое. t задокументирован, поэтому нет никаких гарантий.
Продолжительность нельзя изменить. В противном случае он будет мешать другим уведомлениям, которые находятся в очереди для отображения.
Вы можете сделать это с помощью:
notificationBuilder. setFullScreenIntent (pendingIntent, true)
Вы также должны использовать следующее:
val tempChannel = NotificationChannel (tempChannelId, "временный канал ", NotificationManager.IMPORTANCE_HIGH)//Установка высокого уровня важнаtempChannel.enableVibration (true) ... notificationBuilder.setAutoCancel (false) notificationBuilder.setPriority (NotificationCompat.PRIORITY_MAX)//PRIORITY_HIGH works toonotificationBrayuilder (0) Для старых устройств нам нужно добавить вибрацию или звук для уведомления Heads-Up. Эта строка не заставит его вибрировать, вы можете использовать другой шаблон или значение по умолчанию, если хотите, чтобы он был vibratenotificationBuilder.setFullScreenIntent (pendingIntent, true)
ВАЖНО:
На большинстве устройств это будет отображать уведомление в верхней части экрана, перекрывая все и оставаясь там.
НО НА НЕКОТОРЫХ УСТРОЙСТВАХ ЭТО БУДЕТ НЕМЕДЛЕННО ЗАПУСТИТЕ НАМЕРЕНИЕ, ПРЕДОСТАВЛЕННОЕ ДЛЯ УВЕДОМЛЕНИЯ. (Например, Huawei)
ДЛЯ РЕШЕНИЯ ЭТОГО мы можем использовать фиктивный pendingIntent для fullScreenIntent, который отображает уведомление таким же образом, только без notificationBuilder.setFullScreenIntent (pendingIntent, true);
Это будет работать как запасной вариант, поэтому уведомление будет отображаться, но через 5 секунд уменьшится до строки состояния.
val servicePendingIntent = PendingIntent.getService (context, 0, Intent (context, FullScreenIntentService :: class.java), 0) val mainActivityPendingIntent = PendingIntent.getActivity (context, 0, Intent (context, MainActivity :: class.java), PendingIntent. FLAG_ONE_SHOT) ... notificationBuilder.setContentIntent (mainActivityPendingIntent) notificationBuilder.setFullScreenIntent (servicePendingIntent, true)
Где:
class FullScreenIntentService : Service () {переопределить забаву onCreate () {super.onCreate () showNotificationHereTheSameWayJustWithoutSetFullScreenIntent () stopSelf ()} переопределить развлечение onBi nd (намерение: намерение?): IBinder? = null}
И не забудьте зарегистрировать службу в AndroidManifest.
.setFullScreenIntent (fullScreenPendingIntent, true)
Для верхнее уведомление, чтобы оставаться включенным, вам нужно добавить полноэкранное намерение