问题
不显示浮动通知,不显示锁屏通知。
解决
1. 首先手机得先开启权限
应用详情 -> 自定义通知 -> 开启对应的权限
2. 设置Notification的flag
Notification的flag有5个。
FLAG_AUTO_CANCEL
当通知被用户点击之后会自动被清除(cancel)FLAG_INSISTENT
在用户响应之前会一直重复提醒音和震动,(如果在default那里开启的话)。FLAG_ONGOING_EVENT
表示正在运行的事件,例如下载进度。不能清除。FLAG_NO_CLEAR
通知栏点击“清除”按钮时,该通知将不会被清除。或者没有清除的按钮FLAG_FOREGROUND_SERVICE
表示当前服务是前台服务,简单通知。默认
重点来了,如果设置了FLAG_ONGOING_EVENT 或者 FLAG_NO_CLEAR 是不能点击清除的,还会导致不会显示悬浮通知和锁屏通知。所以,我们不设置或者设置为FLAG_AUTO_CANCEL就可以了
桌面显示通知数量
不是所有桌面都可以的。 桌面是第三方的应用了。你的应用不能去修改它的东西。
但是miui的系统对系统有做手脚。通过反射可以设置桌面图标消息数量。
设置好了notification之后,在下面加下面一段代码就可以了。
//小米显示桌面消息数量
try {
Field field = notification.getClass().getDeclaredField("extraNotification");
Object extraNotification = field.get(notification);
Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class);
method.invoke(extraNotification, 这里填写数量);
} catch (Exception e) {
e.printStackTrace();
}