Hello I wrote a class to create notifications, but the problem that there is the notification icon that appears in the status bar, the notification block does not appear or even in the lock screen. In the doc it is written to use NotificationManagerCompat
to show notification ( Docs link). Here is my code:
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();
}
And using like this:
NotificationsService notif = new NotificationsService(context);
notif.sendNotification(R.mipmap.ic_launcher);
Only the app icon appears and the notification only in the status bar