final String CHANNEL_ID = "com.chao.channel.id"; final String CHANNEL_NAME = "com.chao.channel.name"; NotificationManager mManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification.Builder builder = null; if(Build.VERSION.SDK_INT < Build.VERSION_CODES.O){ builder = new Notification.Builder(this); }else{ /** * Oreo不用Priority了,用importance * IMPORTANCE_NONE 關閉通知 * IMPORTANCE_MIN 開啟通知,不會彈出,但沒有提示音,狀態欄中無顯示 * IMPORTANCE_LOW 開啟通知,不會彈出,不發出提示音,狀態欄中顯示 * IMPORTANCE_DEFAULT 開啟通知,不會彈出,發出提示音,狀態欄中顯示 * IMPORTANCE_HIGH 開啟通知,會彈出,發出提示音,狀態欄中顯示 */過 NotificationChannel notificationChannel = new NotificationChannel(Config.CHANNEL_ID, Config.CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH); //如果這里用IMPORTANCE_NOENE就需要在系統的設置里面開啟渠道, //通知才能正常彈出 mManager.createNotificationChannel(notificationChannel); builder = new Notification.Builder(this,Config.CHANNEL_ID); } notification = builder.build(); mManager.notify(555, notification);
部分機型使用IMPORTANCE_LOW MIN NONE仍然發出提示音問題,修改channelId,可以解決