美文网首页
Android 进度条通知栏通知

Android 进度条通知栏通知

作者: yunhen | 来源:发表于2018-12-21 15:02 被阅读7次
    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);
        }
    

    相关文章

      网友评论

          本文标题:Android 进度条通知栏通知

          本文链接:https://www.haomeiwen.com/subject/izgmkqtx.html