延长Lollipops“单挑”通知持续时间

时间:2016-07-08 22:31:26

标签: java android android-5.0-lollipop android-notifications heads-up-notifications

一直试图找到一种方法来创建持久的抬头通知,就像接听电话或环聊电话一样。这些仅限于Google /系统应用吗?

我试过了:

  • 删除抬头通知前更新通知。
  • 将正在进行的标记设置为true。
  • 将自动取消设为假

似乎无法在任何地方找到这种情况。

3 个答案:

答案 0 :(得分:2)

它对我有用:

  • 将持续标志设为真实
  • 设置全屏意图
  • 优先考虑PRIORITY_HIGH
  • 将类别设置为CATEGORY_CALL

答案 1 :(得分:0)

Heads-Up Notifications(API级别21):

  

可能触发抬头通知的条件示例包括:

     
      
  • 用户的活动处于全屏模式(该应用使用fullScreenIntent),
  •   
  • 通知具有高优先级并使用铃声或振动
  •   

第二个案例足以让我显示单挑通知。以下是示例代码:

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持续时间......)就可以了。

注意,您可能希望在第一次播放后播放silent.mp3。

答案 2 :(得分:0)

只需将setOngoing添加为true。 .setOngoing(true);,这就是通知(抬头)的显示方式,在通知面板中显示的时间更长,而且现在还没有不可擦除的通知。