Android Notification取消声音 取消弹出

前言

现在很多android项目都会用到service ,但是安卓8.0以后官方要求使用service时必须在其内部调用startForeground(id,Notification);方法否则会报ANR。该方法内需要一个Notification参数,如果不对它的参数进行设置,会有弹窗和声音。

我现在做的一个项目就是要求取消Notification的弹窗和声音,因为Notification的弹窗和声音对用户体验有影响。下面说说取消弹窗和声音的方法。

解决办法

最重要的就是NotificationManager.IMPORTANCE_MIN这句代码。意思是重要性最低即为沉默。

以下为全部代码部分:

String CHANNEL_ONE_ID = "com.test.product";
        String CHANNEL_ONE_NAME = "Channel One";
NotificationChannel notificationChannel = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            notificationChannel = new NotificationChannel(CHANNEL_ONE_ID,CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_MIN);
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.setShowBadge(true);
            notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            manager.createNotificationChannel(notificationChannel);
        }
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ONE_ID);
       Notification notification = builder
                .setTicker("service服务")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("service服务")
                .setContentText(message)
                .setContentInfo("")
                .setContentIntent(pendingIntent)
                .setAutoCancel(true)
                .build();
        NotificationManager notificationManager = (NotificationManager) 
        getSystemService(NOTIFICATION_SERVICE);
        startForeground(1, notification);
        notificationManager.notify(1, notification);

在上面的代码块中第5行new NotificationChannel时第二个参数 传NotificationManager.IMPORTANCE_MIN

结束。

    原文作者:Granger_g
    原文地址: https://blog.csdn.net/gaoqingliang521/article/details/121511353
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞