最近在 写项目的时候 发现 通知并不会显示的问题,查看资料发现 从Android 8.0开始通知必须加上ChannelId
Android O 引入了 通知渠道(Notification Channels),以提供统一的系统来帮助用户管理通知,如果是针对 android O 为目标平台时,必须实现一个或者多个通知渠道,以向用户显示通知。比如聊天软件,为每个聊天组设置一个通知渠道,指定特定声音、灯光等配置
String id = "my_id"; String name="my_name"; notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_LOW); Toast.makeText(this, mChannel.toString(), Toast.LENGTH_SHORT).show(); Log.i(TAG, mChannel.toString()); notificationManager.createNotificationChannel(mChannel); notification = new Notification.Builder(this) .setChannelId(id) .setContentTitle("5 new messages") .setContentText("hahaha") .setSmallIcon(R.mipmap.ic_launcher).build(); } else { NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setContentTitle("5 new messages") .setContentText("hahaha") .setSmallIcon(R.mipmap.ic_launcher) .setOngoing(true) .setChannel(id);//无效 notification = notificationBuilder.build(); } notificationManager.notify(111123, notification);