Здравствуйте, я написал класс для создания уведомлений, но проблема в том, что в строке состояния появляется значок уведомления, блок уведомлений не появляется или даже на экране блокировки.В документе написано использование NotificationManagerCompat
для отображения уведомлений ( ссылка на документы ).Вот мой код:
public class NotificationsService {
private Context mContext;
private NotificationManager mNotificationManager;
public NotificationsService(Context context) {
mContext = context;
}
public void sendNotification(int iconResource) {
Notification notification = buildNotification(iconResource);
// mNotificationManager.notify(0 /* ID of notification */, notification);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mContext);
notificationManager.notify(70, notification);
}
public Notification buildNotification(int iconResource) {
String CHANNEL_ID = "type"; // The id of the channel.
CharSequence channelName = "dsfsf";
NotificationChannel channel = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
channel = new NotificationChannel(CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_DEFAULT);
}
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext, CHANNEL_ID)
.setSmallIcon(iconResource)
.setContentTitle("title")
.setContentText("message")
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setSound(defaultSoundUri)
.setChannelId(CHANNEL_ID);
// .setContentIntent(pendingIntent);
mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && mNotificationManager != null) {
mNotificationManager.createNotificationChannel(channel);
}
return notificationBuilder.build();
}
И используя вот так:
NotificationsService notif = new NotificationsService(context);
notif.sendNotification(R.mipmap.ic_launcher);
Появляется только значок приложения и уведомление только в строке состояния