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,"正在下载","appName","msg");
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);
}
Android 进度条通知栏通知
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 实现过程,首先创建一个Service,将service绑定到MainActivity,在选择完文件之后,用fres...
- 实现过程,首先创建一个Service,将service绑定到MainActivity,在选择完文件之后,用fres...
- 首先,android原生的蓝牙接收流程是,在有文件从其他设备传过来时,会弹出蓝牙文件接收的缺人框且默认是以noti...