public class MyNotificationUtils {
private static NotificationManager manager;
private static NotificationManager getManager(Context context) {
if (manager == null) {
manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
}
return manager;
}
private static NotificationCompat.Builder getNotificationBuilder(Context mContext,String title
, String content, String channelId) {
//大于8.0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//id随便指定
NotificationChannel channel = new NotificationChannel(channelId
, mContext.getPackageName(), NotificationManager.IMPORTANCE_DEFAULT);
channel.canBypassDnd();//可否绕过,请勿打扰模式
channel.enableLights(true);//闪光
channel.setLockscreenVisibility(Notification.VISIBILITY_SECRET);//锁屏显示通知
channel.setLightColor(Color.RED);//指定闪光是的灯光颜色
channel.canShowBadge();//桌面laucher消息角标
channel.enableVibration(true);//是否允许震动
channel.setSound(null, null);
//channel.getAudioAttributes();//获取系统通知响铃声音配置
channel.getGroup();//获取通知渠道组
channel.setBypassDnd(true);//设置可以绕过,请勿打扰模式
channel.setVibrationPattern(new long[]{100, 100, 200});//震动的模式,震3次,第一次100,第二次100,第三次200毫秒
channel.shouldShowLights();//是否会闪光
//通知管理者创建的渠道
getManager(mContext).createNotificationChannel(channel);
}
return new NotificationCompat.Builder(mContext,channelId).setAutoCancel(true)
.setContentTitle(title)
.setContentText(content).setSmallIcon(R.mipmap.ic_launcher);
}
/**
*
* @param title
* @param content
* @param manageId
* @param channelId
* @param progress
* @param maxProgress
*/
public static void showNotificationProgress(Context mContext,String title
, String content, int manageId, String channelId
, int progress, int maxProgress) {
final NotificationCompat.Builder builder = getNotificationBuilder(mContext,title,content,channelId);
/* Intent intent = new Intent(this, SecondeActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
builder.setContentIntent(pendingIntent);*/
builder.setOnlyAlertOnce(true);
builder.setDefaults(Notification.FLAG_ONLY_ALERT_ONCE);
builder.setProgress(maxProgress, progress, false);
builder.setWhen(System.currentTimeMillis());
getManager(mContext).notify(manageId, builder.build());
}
public static void showNotificationProgressApkDown(Context mContext
, int progress) {
final NotificationCompat.Builder builder = getNotificationBuilder(mContext,"正在下载","悠游云驾","yunjia");
builder.setOnlyAlertOnce(true);
builder.setDefaults(Notification.FLAG_ONLY_ALERT_ONCE);
builder.setProgress(100, progress, false);
builder.setWhen(System.currentTimeMillis());
getManager(mContext).notify(R.drawable.ic_launcher, builder.build());
}
public static void cancleNotification(Context mContext,int manageId) {
getManager(mContext).cancel(manageId);
}
网友评论