1、小米手机
官方文档:文档中心
/**
* 小米手机创建通知信息并创建角标
*
* @param context
* @param num
*/
public static void setXiaoMiBadgeNum(Context context, int num) {
Log.e(TAG, "--------setXiaoMiBadgeNum----------");
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
String title = "消息提示";
String desc = "您有" + num + "条未读消息";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String channelId = "default";
String channelName = "默认通知";
NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH);
channel.setShowBadge(true);
notificationManager.createNotificationChannel(channel);
}
Notification notification = new NotificationCompat.Builder(context, "default")
.setContentTitle(title)
.setContentText(desc)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setAutoCancel(true)
.setChannelId("default")
.setNumber(num)//桌面角标数量
.setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
.build();
//取消掉上一条通知消息
notificationManager.cancel(notificationId);
try {
Field field = notification.getClass().getDeclaredField("extraNotification");
Object extraNotification = field.get(notification);
Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class);
method.invoke(extraNotification, num);