一直在尝试找到一种方法来创建持久的抬头通知,就像接听电话或环聊电话一样。这些是否仅限于谷歌/系统应用?
我试过:
- 在删除抬头通知之前更新通知。
- 将正在进行的标志设置为 true。
- 将自动取消设置为 false
似乎找不到任何地方都在这样做。
它对我有用:
- 将持续标志设置为 true
- 设置全屏意图
- 将优先级设置为PRIORITY_HIGH
- 将类别设置为CATEGORY_CALL
提醒通知(API 级别 21):
可能触发提醒通知的条件示例包括:
- 用户的活动处于全屏模式(应用使用全屏意图),或
- 通知具有高优先级,并使用铃声或振动
第二种情况足以让我显示提醒通知。下面是一个示例代码:
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("Title")
.setContentText("Message")
.setSmallIcon(R.drawable.ic_notification)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_sound))
// .setOngoing(true)
.build();
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(42, notification);
每秒运行一次此示例代码(取决于持续时间your_sound.mp3...)就可以解决问题。
请注意,您可能希望在第一次之后播放静音.mp3。
只是,将setOngoing
添加到 true。 .setOngoing(true);
,这就是您在通知面板中使通知(抬头)显示更长时间,现在也没有通知不可滑动的方式。