Notification not showing in Oreo












153















Normal Notification Builder doesn't show notifications on Android O.



How could I show notification on Android 8 Oreo?



Is there any new piece of code to add for showing notification on Android O?










share|improve this question




















  • 1





    I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

    – varotariya vajsi
    Nov 3 '18 at 11:15











  • Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

    – Code Spy
    Dec 20 '18 at 9:35
















153















Normal Notification Builder doesn't show notifications on Android O.



How could I show notification on Android 8 Oreo?



Is there any new piece of code to add for showing notification on Android O?










share|improve this question




















  • 1





    I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

    – varotariya vajsi
    Nov 3 '18 at 11:15











  • Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

    – Code Spy
    Dec 20 '18 at 9:35














153












153








153


37






Normal Notification Builder doesn't show notifications on Android O.



How could I show notification on Android 8 Oreo?



Is there any new piece of code to add for showing notification on Android O?










share|improve this question
















Normal Notification Builder doesn't show notifications on Android O.



How could I show notification on Android 8 Oreo?



Is there any new piece of code to add for showing notification on Android O?







android android-notifications android-8.0-oreo






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Oct 30 '18 at 14:11









Adinia

3,54653253




3,54653253










asked Mar 29 '17 at 12:15









amorenewamorenew

5,75532538




5,75532538








  • 1





    I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

    – varotariya vajsi
    Nov 3 '18 at 11:15











  • Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

    – Code Spy
    Dec 20 '18 at 9:35














  • 1





    I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

    – varotariya vajsi
    Nov 3 '18 at 11:15











  • Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

    – Code Spy
    Dec 20 '18 at 9:35








1




1





I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

– varotariya vajsi
Nov 3 '18 at 11:15





I forgot to set ".setChannelId" to NotificationCompat.Builder and now its working in oreo(8.0)

– varotariya vajsi
Nov 3 '18 at 11:15













Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

– Code Spy
Dec 20 '18 at 9:35





Check if this can help freakyjolly.com/android-useful-methods-and-functions/#3method

– Code Spy
Dec 20 '18 at 9:35












16 Answers
16






active

oldest

votes


















229














In Android O it's a must to use a channel with your Notification Builder



below is a sample code :



// Sets an ID for the notification, so it can be updated.
int notifyID = 1;
String CHANNEL_ID = "my_channel_01";// The id of the channel.
CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
// Create a notification and set the notification channel.
Notification notification = new Notification.Builder(MainActivity.this)
.setContentTitle("New Message")
.setContentText("You've received new messages.")
.setSmallIcon(R.drawable.ic_notify_status)
.setChannelId(CHANNEL_ID)
.build();


Or with Handling compatibility by:



NotificationCompat notification =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setChannelId(CHANNEL_ID).build();



NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.createNotificationChannel(mChannel);

// Issue the notification.
mNotificationManager.notify(notifyID , notification);


or if you want a simple fix then use the following code:



NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mNotificationManager.createNotificationChannel(mChannel);
}


Updates:
NotificationCompat.Builder reference



NotificationCompat.Builder(Context context)


This constructor was deprecated in API level 26.0.0
so you should use



Builder(Context context, String channelId)


so no need to setChannelId with the new constructor.



And you should use the latest of AppCompat library currently 26.0.2



compile "com.android.support:appcompat-v7:26.0.+"


Source from Android Developers Channel on Youtube



Also, you could check official Android Docs






share|improve this answer





















  • 4





    You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

    – Guillaume Perrot
    Jun 14 '17 at 2:35








  • 2





    setChannel is deprecated in favor of setChannelId

    – Guillaume Perrot
    Jun 14 '17 at 2:42






  • 1





    No you get an error if you don't create a channel at least once in app install lifetime.

    – Guillaume Perrot
    Jun 14 '17 at 18:33






  • 1





    @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

    – JPM
    Sep 13 '17 at 16:28








  • 2





    What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

    – Loisaida Sam
    Oct 12 '17 at 3:35



















71














In addition to this answer, you need to create the notification channel before it can be used.



  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

/* Create or update. */
NotificationChannel channel = new NotificationChannel("my_channel_01",
"Channel human readable title",
NotificationManager.IMPORTANCE_DEFAULT);
mNotificationManager.createNotificationChannel(channel);
}


Also you need to use channels only if your targetSdkVersion is 26 or higher.



If you are using NotificationCompat.Builder, you also need to update to the beta version of the support library: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-beta2 (to be able to call setChannelId on the compat builder).



Be careful as this library update raises minSdkLevel to 14.






share|improve this answer
























  • This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

    – s-hunter
    Apr 27 '18 at 2:03











  • If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

    – Guillaume Perrot
    Jun 14 '18 at 0:54





















51














Here i post some quick solution function with intent handling



public void showNotification(Context context, String title, String body, Intent intent) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

int notificationId = 1;
String channelId = "channel-01";
String channelName = "Channel Name";
int importance = NotificationManager.IMPORTANCE_HIGH;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel mChannel = new NotificationChannel(
channelId, channelName, importance);
notificationManager.createNotificationChannel(mChannel);
}

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(intent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);

notificationManager.notify(notificationId, mBuilder.build());
}





share|improve this answer



















  • 3





    This is the only one that worked for me.

    – RJB
    Oct 3 '18 at 11:56






  • 2





    The only one that worked for all android versions.

    – Mubashar
    Oct 17 '18 at 14:26



















10














public class MyFirebaseMessagingServices extends FirebaseMessagingService {
private NotificationChannel mChannel;
private NotificationManager notifManager;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getData().size() > 0) {
try {
JSONObject jsonObject = new JSONObject(remoteMessage.getData());
displayCustomNotificationForOrders(jsonObject.getString("title"), jsonObject.getString("description"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}

private void displayCustomNotificationForOrders(String title, String description) {
if (notifManager == null) {
notifManager = (NotificationManager) getSystemService
(Context.NOTIFICATION_SERVICE);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationCompat.Builder builder;
Intent intent = new Intent(this, Dashboard.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent;
int importance = NotificationManager.IMPORTANCE_HIGH;
if (mChannel == null) {
mChannel = new NotificationChannel
("0", title, importance);
mChannel.setDescription(description);
mChannel.enableVibration(true);
notifManager.createNotificationChannel(mChannel);
}
builder = new NotificationCompat.Builder(this, "0");

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);
builder.setContentTitle(title)
.setSmallIcon(getNotificationIcon()) // required
.setContentText(description) // required
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setLargeIcon(BitmapFactory.decodeResource
(getResources(), R.mipmap.logo))
.setBadgeIconType(R.mipmap.logo)
.setContentIntent(pendingIntent)
.setSound(RingtoneManager.getDefaultUri
(RingtoneManager.TYPE_NOTIFICATION));
Notification notification = builder.build();
notifManager.notify(0, notification);
} else {

Intent intent = new Intent(this, Dashboard.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = null;

pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setContentTitle(title)
.setContentText(description)
.setAutoCancel(true)
.setColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
.setSound(defaultSoundUri)
.setSmallIcon(getNotificationIcon())
.setContentIntent(pendingIntent)
.setStyle(new NotificationCompat.BigTextStyle().setBigContentTitle(title).bigText(description));

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1251, notificationBuilder.build());
}
}

private int getNotificationIcon() {
boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.mipmap.logo : R.mipmap.logo;
}
}





share|improve this answer


























  • Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

    – Shihab Uddin
    May 29 '18 at 8:05













  • thanks working fine for me

    – Mihir Patel
    Sep 14 '18 at 7:06



















4














Android Notification Demo App for Android O as well as lower API versions.
Here is best demo app on GitHub-Demo 1 and GitHub-Demo 2.



enter image description here






share|improve this answer



















  • 1





    Its worked for me!!!! thank you

    – Harish
    Oct 16 '18 at 14:00



















3














Try this Code :






public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
private static final String TAG = "MY Channel";
Bitmap bitmap;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Utility.printMessage(remoteMessage.getNotification().getBody());

// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());

String title = remoteMessage.getData().get("title");
String body = remoteMessage.getData().get("body");
String message = remoteMessage.getData().get("message");
String imageUri = remoteMessage.getData().get("image");
String msg_id = remoteMessage.getData().get("msg-id");


Log.d(TAG, "1: " + title);
Log.d(TAG, "2: " + body);
Log.d(TAG, "3: " + message);
Log.d(TAG, "4: " + imageUri);


if (imageUri != null)
bitmap = getBitmapfromUrl(imageUri);

}

sendNotification(message, bitmap, title, msg_id);

}


}

private void sendNotification(String message, Bitmap image, String title,String msg_id) {
int notifyID = 0;
try {
notifyID = Integer.parseInt(msg_id);
} catch (NumberFormatException e) {
e.printStackTrace();
}

String CHANNEL_ID = "my_channel_01"; // The id of the channel.
Intent intent = new Intent(this, HomeActivity.class);
intent.putExtra("title", title);
intent.putExtra("message", message);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
.setContentTitle(title)
.setSmallIcon(R.mipmap.ic_notification)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(message))
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setChannelId(CHANNEL_ID)
.setContentIntent(pendingIntent);

if (image != null) {
notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
.bigPicture(image)
.setSummaryText(message)
.bigLargeIcon(null));
}


NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
CharSequence name = "My New Channel"; // The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;

NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
notificationManager.createNotificationChannel(channel);
}

notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
}

public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
try {
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;

}

}

}








share|improve this answer































    3














    If you can't get the push notification in 26+ SDK version?




    your solution is here:




    public static void showNotification(Context context, String title, String messageBody) {

    boolean isLoggedIn = SessionManager.getInstance().isLoggedIn();
    Log.e(TAG, "User logged in state: " + isLoggedIn);

    Intent intent = null;
    if (isLoggedIn) {
    //goto notification screen
    intent = new Intent(context, MainActivity.class);
    intent.putExtra(Extras.EXTRA_JUMP_TO, DrawerItems.ITEM_NOTIFICATION);
    } else {
    //goto login screen
    intent = new Intent(context, LandingActivity.class);
    }

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

    //Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    //Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_app_notification_icon);

    String channel_id = createNotificationChannel(context);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)
    .setContentTitle(title)
    .setContentText(messageBody)
    .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
    /*.setLargeIcon(largeIcon)*/
    .setSmallIcon(R.drawable.app_logo_color) //needs white icon with transparent BG (For all platforms)
    .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
    .setVibrate(new long{1000, 1000})
    .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
    .setContentIntent(pendingIntent)
    .setPriority(Notification.PRIORITY_HIGH)
    .setAutoCancel(true);

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify((int) ((new Date(System.currentTimeMillis()).getTime() / 1000L) % Integer.MAX_VALUE) /* ID of notification */, notificationBuilder.build());
    }

    public static String createNotificationChannel(Context context) {

    // NotificationChannels are required for Notifications on O (API 26) and above.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

    // The id of the channel.
    String channelId = "Channel_id";

    // The user-visible name of the channel.
    CharSequence channelName = "Application_name";
    // The user-visible description of the channel.
    String channelDescription = "Application_name Alert";
    int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
    boolean channelEnableVibrate = true;
    // int channelLockscreenVisibility = Notification.;

    // Initializes NotificationChannel.
    NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
    notificationChannel.setDescription(channelDescription);
    notificationChannel.enableVibration(channelEnableVibrate);
    // notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);

    // Adds NotificationChannel to system. Attempting to create an existing notification
    // channel with its original values performs no operation, so it's safe to perform the
    // below sequence.
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    assert notificationManager != null;
    notificationManager.createNotificationChannel(notificationChannel);

    return channelId;
    } else {
    // Returns null for pre-O (26) devices.
    return null;
    }
    }


    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)



    -> Here you will get push notification using channel_id in your device which is consist 26+ SDK version.



    -> Because, the NotificationCompat.Builder(context) is deprecated method now you will use an updated version which is having two parameters one is context, other is channel_id.



    -> NotificationCompat.Builder(context, channel_id) updated method. try it.



    -> In 26+ SDK version of device you will create channel_id every time.






    share|improve this answer


























    • Tested in my app, definitely worked

      – zoom
      Jan 13 at 11:06











    • Thanks I was using a static notifcation_id to notify

      – pratham kesarkar
      Jan 31 at 10:32











    • Can't resolve SessionManager.

      – Taslim Oseni
      Feb 27 at 16:29



















    2














    This is bug in firebase api version 11.8.0, So if you reduce API version you will not face this issue.






    share|improve this answer
























    • could You provide link to this information?

      – deadfish
      Mar 19 '18 at 11:28











    • Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

      – deadfish
      Mar 19 '18 at 13:16











    • No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

      – M.Noman
      Mar 22 '18 at 17:38








    • 1





      Thanks, it's good to know.

      – deadfish
      Mar 23 '18 at 12:35



















    1














    Here's how you do it



    private fun sendNotification() {
    val notificationId = 100
    val chanelid = "chanelid"
    val intent = Intent(this, MainActivity::class.java)
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
    val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // you must create a notification channel for API 26 and Above
    val name = "my channel"
    val description = "channel description"
    val importance = NotificationManager.IMPORTANCE_DEFAULT
    val channel = NotificationChannel(chanelid, name, importance);
    channel.setDescription(description);
    // Register the channel with the system; you can't change the importance
    // or other notification behaviors after this
    val notificationManager = getSystemService(NotificationManager::class.java)
    notificationManager.createNotificationChannel(channel)
    }

    val mBuilder = NotificationCompat.Builder(this, chanelid)
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("Want to Open My App?")
    .setContentText("Open my app and see good things")
    .setPriority(NotificationCompat.PRIORITY_DEFAULT)
    .setContentIntent(pendingIntent)
    .setAutoCancel(true) // cancel the notification when clicked
    .addAction(R.drawable.ic_check, "YES", pendingIntent) //add a btn to the Notification with a corresponding intent

    val notificationManager = NotificationManagerCompat.from(this);
    notificationManager.notify(notificationId, mBuilder.build());
    }


    Read full tutorial at => https://developer.android.com/training/notify-user/build-notification






    share|improve this answer

































      0














      For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.



      const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

      // create notification channel
      val notificationChannel = NotificationChannel(CHANNEL_ID,
      NOTIFICATION_NAME, NotificationManager.IMPORTANCE_HIGH)

      // building notification
      NotificationCompat.Builder(context)
      .setSmallIcon(android.R.drawable.ic_input_add)
      .setContentTitle("Title")
      .setContentText("Subtitle")
      .setPriority(NotificationCompat.PRIORITY_MAX)
      .setChannelId(CHANNEL_ID)





      share|improve this answer































        0














        private void addNotification() {
        NotificationCompat.Builder builder =
        new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_launcher_background)
        .setContentTitle("Notifications Example")
        .setContentText("This is a test notification");
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
        PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);
        // Add as notification
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
        {
        NotificationChannel nChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH);
        nChannel.enableLights(true);
        assert manager != null;
        builder.setChannelId(NOTIFICATION_CHANNEL_ID);
        manager.createNotificationChannel(nChannel);
        }
        assert manager != null;
        manager.notify(0, builder.build());
        }





        share|improve this answer































          0














          In android Oreo,notification app is done by using channels and NotificationHelper class.It should have a channel id and channel name.



          First u have to create a NotificationHelper Class



          public class NotificationHelper extends ContextWrapper {



          private static final String EDMT_CHANNEL_ID="com.example.safna.notifier1.EDMTDEV";
          private static final String EDMT_CHANNEL_NAME="EDMTDEV Channel";
          private NotificationManager manager;

          public NotificationHelper(Context base)
          {
          super(base);
          createChannels();
          }
          private void createChannels()
          {
          NotificationChannel edmtChannel=new NotificationChannel(EDMT_CHANNEL_ID,EDMT_CHANNEL_NAME,NotificationManager.IMPORTANCE_DEFAULT);
          edmtChannel.enableLights(true);
          edmtChannel.enableVibration(true);
          edmtChannel.setLightColor(Color.GREEN);
          edmtChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

          getManager().createNotificationChannel(edmtChannel);

          }
          public NotificationManager getManager()
          {
          if (manager==null)
          manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
          return manager;

          }
          public Notification.Builder getEDMTChannelNotification(String title,String body)
          {
          return new Notification.Builder(getApplicationContext(),EDMT_CHANNEL_ID)
          .setContentText(body)
          .setContentTitle(title)
          .setSmallIcon(R.mipmap.ic_launcher_round)
          .setAutoCancel(true);
          }


          }



          Create a button in activity xml file,then In the main activity



          protected void onCreate(Bundle savedInstanceState) {



              super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

          helper=new NotificationHelper(this);

          btnSend=(Button)findViewById(R.id.btnSend);

          btnSend.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
          String title="Title";
          String content="Content";
          Notification.Builder builder=helper.getEDMTChannelNotification(title,content);
          helper.getManager().notify(new Random().nextInt(),builder.build());
          }
          });

          }


          Then run ur project






          share|improve this answer































            0














            Following method will show Notification, having big text and freeze enabled( Notification will not get removed even after user swipes ). We need NotificationManager service



            public static void showNotificationOngoing(Context context,String title) {
            NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

            PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
            new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

            Notification.Builder notificationBuilder = new Notification.Builder(context)
            .setContentTitle(title + DateFormat.getDateTimeInstance().format(new Date()) + ":" + accuracy)
            .setContentText(addressFragments.toString())
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentIntent(contentIntent)
            .setOngoing(true)
            .setStyle(new Notification.BigTextStyle().bigText(addressFragments.toString()))
            .setAutoCancel(true);
            notificationManager.notify(3, notificationBuilder.build());
            }


            Method to Remove Notifications



            public static void removeNotification(Context context){
            NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
            notificationManager.cancelAll();
            }


            Source Link






            share|improve this answer































              0














              NotificationCompat.Builder(Context context)


              already deprecated for version greater than or equal android Oreo. You can change implementation into using



              NotificationCompat.Builder(Context context, String channelId)





              share|improve this answer































                0














                The Notification Channel features is added from Api level 26 (in oreo). the below code is working fine on my side, hope it will help you



                 private void sendNotification(Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {       
                try {

                PendingIntent pendingIntent = PendingIntent.getActivity(ctx, notificationNumber, intent,
                PendingIntent.FLAG_UPDATE_CURRENT);
                Uri url = null;
                NotificationCompat.Builder notificationBuilder = null;
                try {
                if (Build.VERSION.SDK_INT >= 26) {

                try{
                NotificationManager notificationManager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                notificationManager.deleteNotificationChannel(CHANNEL_ID_1);
                notificationManager.deleteNotificationChannel(CHANNEL_ID_2);

                if(!intent.getStringExtra("type").equalsIgnoreCase(""+TYPE_RIDE_REQUEST)){
                NotificationChannel breaking = new NotificationChannel(CHANNEL_ID_1, CHANNEL_ID_1_NAME, NotificationManager.IMPORTANCE_HIGH);
                breaking.setShowBadge(false);
                breaking.enableLights(true);
                breaking.enableVibration(true);
                breaking.setLightColor(Color.WHITE);
                breaking.setVibrationPattern(new long{100, 200, 100, 200, 100, 200, 100});
                breaking.setSound(url,new AudioAttributes.Builder().build());

                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_1)
                .setSmallIcon(R.mipmap.ic_launcher);
                notificationManager.createNotificationChannel(breaking);

                }else{

                NotificationChannel politics = new NotificationChannel(CHANNEL_ID_2,CHANNEL_ID_2_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                politics.setShowBadge(false);
                politics.enableLights(true);
                politics.enableVibration(true);
                politics.setLightColor(Color.BLUE);
                politics.setVibrationPattern(new long{100, 200, 100, 200, 100});
                politics.setSound(url,new AudioAttributes.Builder().build());

                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_2)
                .setSmallIcon(R.mipmap.ic_launcher);
                notificationManager.createNotificationChannel(politics);
                }
                }catch (Exception e){
                e.printStackTrace();
                }

                } else {
                notificationBuilder = new NotificationCompat.Builder(ctx)
                .setSmallIcon(R.mipmap.ic_launcher);
                }
                } catch (Exception e) {
                e.printStackTrace();
                }

                if (notificationBuilder == null) {
                notificationBuilder = new NotificationCompat.Builder(ctx)
                .setSmallIcon(R.mipmap.ic_launcher);
                }


                notificationBuilder.setContentTitle(title);
                notificationBuilder.setSubText(subtext);
                notificationBuilder.setAutoCancel(true);

                notificationBuilder.setContentIntent(pendingIntent);
                notificationBuilder.setNumber(notificationNumber);
                NotificationManager notificationManager =
                (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

                notificationManager.notify(notificationNumber, notificationBuilder.build());

                } catch (Exception e) {
                e.printStackTrace();
                }

                }





                share|improve this answer































                  -1














                      NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "CHANNEL_ID")
                  ........

                  NotificationManager mNotificationManager =
                  (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                  CharSequence name = "Hello";// The user-visible name of the channel.
                  int importance = NotificationManager.IMPORTANCE_HIGH;
                  NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                  mNotificationManager.createNotificationChannel(mChannel);
                  }
                  mNotificationManager.notify(notificationId, notificationBuilder.build());





                  share|improve this answer

























                    Your Answer






                    StackExchange.ifUsing("editor", function () {
                    StackExchange.using("externalEditor", function () {
                    StackExchange.using("snippets", function () {
                    StackExchange.snippets.init();
                    });
                    });
                    }, "code-snippets");

                    StackExchange.ready(function() {
                    var channelOptions = {
                    tags: "".split(" "),
                    id: "1"
                    };
                    initTagRenderer("".split(" "), "".split(" "), channelOptions);

                    StackExchange.using("externalEditor", function() {
                    // Have to fire editor after snippets, if snippets enabled
                    if (StackExchange.settings.snippets.snippetsEnabled) {
                    StackExchange.using("snippets", function() {
                    createEditor();
                    });
                    }
                    else {
                    createEditor();
                    }
                    });

                    function createEditor() {
                    StackExchange.prepareEditor({
                    heartbeatType: 'answer',
                    autoActivateHeartbeat: false,
                    convertImagesToLinks: true,
                    noModals: true,
                    showLowRepImageUploadWarning: true,
                    reputationToPostImages: 10,
                    bindNavPrevention: true,
                    postfix: "",
                    imageUploader: {
                    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                    allowUrls: true
                    },
                    onDemand: true,
                    discardSelector: ".discard-answer"
                    ,immediatelyShowMarkdownHelp:true
                    });


                    }
                    });














                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f43093260%2fnotification-not-showing-in-oreo%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown

























                    16 Answers
                    16






                    active

                    oldest

                    votes








                    16 Answers
                    16






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    229














                    In Android O it's a must to use a channel with your Notification Builder



                    below is a sample code :



                    // Sets an ID for the notification, so it can be updated.
                    int notifyID = 1;
                    String CHANNEL_ID = "my_channel_01";// The id of the channel.
                    CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                    // Create a notification and set the notification channel.
                    Notification notification = new Notification.Builder(MainActivity.this)
                    .setContentTitle("New Message")
                    .setContentText("You've received new messages.")
                    .setSmallIcon(R.drawable.ic_notify_status)
                    .setChannelId(CHANNEL_ID)
                    .build();


                    Or with Handling compatibility by:



                    NotificationCompat notification =
                    new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!")
                    .setChannelId(CHANNEL_ID).build();



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    mNotificationManager.createNotificationChannel(mChannel);

                    // Issue the notification.
                    mNotificationManager.notify(notifyID , notification);


                    or if you want a simple fix then use the following code:



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    mNotificationManager.createNotificationChannel(mChannel);
                    }


                    Updates:
                    NotificationCompat.Builder reference



                    NotificationCompat.Builder(Context context)


                    This constructor was deprecated in API level 26.0.0
                    so you should use



                    Builder(Context context, String channelId)


                    so no need to setChannelId with the new constructor.



                    And you should use the latest of AppCompat library currently 26.0.2



                    compile "com.android.support:appcompat-v7:26.0.+"


                    Source from Android Developers Channel on Youtube



                    Also, you could check official Android Docs






                    share|improve this answer





















                    • 4





                      You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                      – Guillaume Perrot
                      Jun 14 '17 at 2:35








                    • 2





                      setChannel is deprecated in favor of setChannelId

                      – Guillaume Perrot
                      Jun 14 '17 at 2:42






                    • 1





                      No you get an error if you don't create a channel at least once in app install lifetime.

                      – Guillaume Perrot
                      Jun 14 '17 at 18:33






                    • 1





                      @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                      – JPM
                      Sep 13 '17 at 16:28








                    • 2





                      What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                      – Loisaida Sam
                      Oct 12 '17 at 3:35
















                    229














                    In Android O it's a must to use a channel with your Notification Builder



                    below is a sample code :



                    // Sets an ID for the notification, so it can be updated.
                    int notifyID = 1;
                    String CHANNEL_ID = "my_channel_01";// The id of the channel.
                    CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                    // Create a notification and set the notification channel.
                    Notification notification = new Notification.Builder(MainActivity.this)
                    .setContentTitle("New Message")
                    .setContentText("You've received new messages.")
                    .setSmallIcon(R.drawable.ic_notify_status)
                    .setChannelId(CHANNEL_ID)
                    .build();


                    Or with Handling compatibility by:



                    NotificationCompat notification =
                    new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!")
                    .setChannelId(CHANNEL_ID).build();



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    mNotificationManager.createNotificationChannel(mChannel);

                    // Issue the notification.
                    mNotificationManager.notify(notifyID , notification);


                    or if you want a simple fix then use the following code:



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    mNotificationManager.createNotificationChannel(mChannel);
                    }


                    Updates:
                    NotificationCompat.Builder reference



                    NotificationCompat.Builder(Context context)


                    This constructor was deprecated in API level 26.0.0
                    so you should use



                    Builder(Context context, String channelId)


                    so no need to setChannelId with the new constructor.



                    And you should use the latest of AppCompat library currently 26.0.2



                    compile "com.android.support:appcompat-v7:26.0.+"


                    Source from Android Developers Channel on Youtube



                    Also, you could check official Android Docs






                    share|improve this answer





















                    • 4





                      You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                      – Guillaume Perrot
                      Jun 14 '17 at 2:35








                    • 2





                      setChannel is deprecated in favor of setChannelId

                      – Guillaume Perrot
                      Jun 14 '17 at 2:42






                    • 1





                      No you get an error if you don't create a channel at least once in app install lifetime.

                      – Guillaume Perrot
                      Jun 14 '17 at 18:33






                    • 1





                      @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                      – JPM
                      Sep 13 '17 at 16:28








                    • 2





                      What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                      – Loisaida Sam
                      Oct 12 '17 at 3:35














                    229












                    229








                    229







                    In Android O it's a must to use a channel with your Notification Builder



                    below is a sample code :



                    // Sets an ID for the notification, so it can be updated.
                    int notifyID = 1;
                    String CHANNEL_ID = "my_channel_01";// The id of the channel.
                    CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                    // Create a notification and set the notification channel.
                    Notification notification = new Notification.Builder(MainActivity.this)
                    .setContentTitle("New Message")
                    .setContentText("You've received new messages.")
                    .setSmallIcon(R.drawable.ic_notify_status)
                    .setChannelId(CHANNEL_ID)
                    .build();


                    Or with Handling compatibility by:



                    NotificationCompat notification =
                    new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!")
                    .setChannelId(CHANNEL_ID).build();



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    mNotificationManager.createNotificationChannel(mChannel);

                    // Issue the notification.
                    mNotificationManager.notify(notifyID , notification);


                    or if you want a simple fix then use the following code:



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    mNotificationManager.createNotificationChannel(mChannel);
                    }


                    Updates:
                    NotificationCompat.Builder reference



                    NotificationCompat.Builder(Context context)


                    This constructor was deprecated in API level 26.0.0
                    so you should use



                    Builder(Context context, String channelId)


                    so no need to setChannelId with the new constructor.



                    And you should use the latest of AppCompat library currently 26.0.2



                    compile "com.android.support:appcompat-v7:26.0.+"


                    Source from Android Developers Channel on Youtube



                    Also, you could check official Android Docs






                    share|improve this answer















                    In Android O it's a must to use a channel with your Notification Builder



                    below is a sample code :



                    // Sets an ID for the notification, so it can be updated.
                    int notifyID = 1;
                    String CHANNEL_ID = "my_channel_01";// The id of the channel.
                    CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                    // Create a notification and set the notification channel.
                    Notification notification = new Notification.Builder(MainActivity.this)
                    .setContentTitle("New Message")
                    .setContentText("You've received new messages.")
                    .setSmallIcon(R.drawable.ic_notify_status)
                    .setChannelId(CHANNEL_ID)
                    .build();


                    Or with Handling compatibility by:



                    NotificationCompat notification =
                    new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!")
                    .setChannelId(CHANNEL_ID).build();



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    mNotificationManager.createNotificationChannel(mChannel);

                    // Issue the notification.
                    mNotificationManager.notify(notifyID , notification);


                    or if you want a simple fix then use the following code:



                    NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    mNotificationManager.createNotificationChannel(mChannel);
                    }


                    Updates:
                    NotificationCompat.Builder reference



                    NotificationCompat.Builder(Context context)


                    This constructor was deprecated in API level 26.0.0
                    so you should use



                    Builder(Context context, String channelId)


                    so no need to setChannelId with the new constructor.



                    And you should use the latest of AppCompat library currently 26.0.2



                    compile "com.android.support:appcompat-v7:26.0.+"


                    Source from Android Developers Channel on Youtube



                    Also, you could check official Android Docs







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Oct 12 '17 at 8:02

























                    answered Mar 29 '17 at 12:15









                    amorenewamorenew

                    5,75532538




                    5,75532538








                    • 4





                      You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                      – Guillaume Perrot
                      Jun 14 '17 at 2:35








                    • 2





                      setChannel is deprecated in favor of setChannelId

                      – Guillaume Perrot
                      Jun 14 '17 at 2:42






                    • 1





                      No you get an error if you don't create a channel at least once in app install lifetime.

                      – Guillaume Perrot
                      Jun 14 '17 at 18:33






                    • 1





                      @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                      – JPM
                      Sep 13 '17 at 16:28








                    • 2





                      What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                      – Loisaida Sam
                      Oct 12 '17 at 3:35














                    • 4





                      You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                      – Guillaume Perrot
                      Jun 14 '17 at 2:35








                    • 2





                      setChannel is deprecated in favor of setChannelId

                      – Guillaume Perrot
                      Jun 14 '17 at 2:42






                    • 1





                      No you get an error if you don't create a channel at least once in app install lifetime.

                      – Guillaume Perrot
                      Jun 14 '17 at 18:33






                    • 1





                      @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                      – JPM
                      Sep 13 '17 at 16:28








                    • 2





                      What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                      – Loisaida Sam
                      Oct 12 '17 at 3:35








                    4




                    4





                    You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                    – Guillaume Perrot
                    Jun 14 '17 at 2:35







                    You must also create a channel before it can be used. See developer.android.com/reference/android/app/…

                    – Guillaume Perrot
                    Jun 14 '17 at 2:35






                    2




                    2





                    setChannel is deprecated in favor of setChannelId

                    – Guillaume Perrot
                    Jun 14 '17 at 2:42





                    setChannel is deprecated in favor of setChannelId

                    – Guillaume Perrot
                    Jun 14 '17 at 2:42




                    1




                    1





                    No you get an error if you don't create a channel at least once in app install lifetime.

                    – Guillaume Perrot
                    Jun 14 '17 at 18:33





                    No you get an error if you don't create a channel at least once in app install lifetime.

                    – Guillaume Perrot
                    Jun 14 '17 at 18:33




                    1




                    1





                    @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                    – JPM
                    Sep 13 '17 at 16:28







                    @amorenew apparently I had the wrong channel name. Its working now. Thanks but your answer is not complete...you must create a channel first using mNotificationManager.createNotificationChannel(mChannel); (I did this in my application class) ... see google docs for this. Maybe add this to your answer.

                    – JPM
                    Sep 13 '17 at 16:28






                    2




                    2





                    What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                    – Loisaida Sam
                    Oct 12 '17 at 3:35





                    What dependencies/versions should I be targeting to get the new NotificationCompat.Builder(Context, String) constructor? I'm using (among other things): - compileSdkVersion 26 - buildToolsVersion '26.0.2' - compile 'com.android.support:appcompat-v7:26.0.0-beta2' and yet it's still not accepting my constructor using a Context and String. Any ideas?

                    – Loisaida Sam
                    Oct 12 '17 at 3:35













                    71














                    In addition to this answer, you need to create the notification channel before it can be used.



                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                    /* Create or update. */
                    NotificationChannel channel = new NotificationChannel("my_channel_01",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
                    mNotificationManager.createNotificationChannel(channel);
                    }


                    Also you need to use channels only if your targetSdkVersion is 26 or higher.



                    If you are using NotificationCompat.Builder, you also need to update to the beta version of the support library: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-beta2 (to be able to call setChannelId on the compat builder).



                    Be careful as this library update raises minSdkLevel to 14.






                    share|improve this answer
























                    • This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                      – s-hunter
                      Apr 27 '18 at 2:03











                    • If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                      – Guillaume Perrot
                      Jun 14 '18 at 0:54


















                    71














                    In addition to this answer, you need to create the notification channel before it can be used.



                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                    /* Create or update. */
                    NotificationChannel channel = new NotificationChannel("my_channel_01",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
                    mNotificationManager.createNotificationChannel(channel);
                    }


                    Also you need to use channels only if your targetSdkVersion is 26 or higher.



                    If you are using NotificationCompat.Builder, you also need to update to the beta version of the support library: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-beta2 (to be able to call setChannelId on the compat builder).



                    Be careful as this library update raises minSdkLevel to 14.






                    share|improve this answer
























                    • This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                      – s-hunter
                      Apr 27 '18 at 2:03











                    • If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                      – Guillaume Perrot
                      Jun 14 '18 at 0:54
















                    71












                    71








                    71







                    In addition to this answer, you need to create the notification channel before it can be used.



                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                    /* Create or update. */
                    NotificationChannel channel = new NotificationChannel("my_channel_01",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
                    mNotificationManager.createNotificationChannel(channel);
                    }


                    Also you need to use channels only if your targetSdkVersion is 26 or higher.



                    If you are using NotificationCompat.Builder, you also need to update to the beta version of the support library: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-beta2 (to be able to call setChannelId on the compat builder).



                    Be careful as this library update raises minSdkLevel to 14.






                    share|improve this answer













                    In addition to this answer, you need to create the notification channel before it can be used.



                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                    /* Create or update. */
                    NotificationChannel channel = new NotificationChannel("my_channel_01",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
                    mNotificationManager.createNotificationChannel(channel);
                    }


                    Also you need to use channels only if your targetSdkVersion is 26 or higher.



                    If you are using NotificationCompat.Builder, you also need to update to the beta version of the support library: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-beta2 (to be able to call setChannelId on the compat builder).



                    Be careful as this library update raises minSdkLevel to 14.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Jun 14 '17 at 2:44









                    Guillaume PerrotGuillaume Perrot

                    2,76022028




                    2,76022028













                    • This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                      – s-hunter
                      Apr 27 '18 at 2:03











                    • If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                      – Guillaume Perrot
                      Jun 14 '18 at 0:54





















                    • This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                      – s-hunter
                      Apr 27 '18 at 2:03











                    • If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                      – Guillaume Perrot
                      Jun 14 '18 at 0:54



















                    This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                    – s-hunter
                    Apr 27 '18 at 2:03





                    This will raise a warning if the min api is lower than 26. Add @TargetApi(26) just before creating the channel to surpress the warning.

                    – s-hunter
                    Apr 27 '18 at 2:03













                    If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                    – Guillaume Perrot
                    Jun 14 '18 at 0:54







                    If you have the if like in the code sample it will not produce the warning, the quick fix has different suggestions, one of them is to surround the code by if version check. If you tune the if version check, Android Studio might be confused though and might not detect it.

                    – Guillaume Perrot
                    Jun 14 '18 at 0:54













                    51














                    Here i post some quick solution function with intent handling



                    public void showNotification(Context context, String title, String body, Intent intent) {
                    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

                    int notificationId = 1;
                    String channelId = "channel-01";
                    String channelName = "Channel Name";
                    int importance = NotificationManager.IMPORTANCE_HIGH;

                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    NotificationChannel mChannel = new NotificationChannel(
                    channelId, channelName, importance);
                    notificationManager.createNotificationChannel(mChannel);
                    }

                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(title)
                    .setContentText(body);

                    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
                    stackBuilder.addNextIntent(intent);
                    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                    0,
                    PendingIntent.FLAG_UPDATE_CURRENT
                    );
                    mBuilder.setContentIntent(resultPendingIntent);

                    notificationManager.notify(notificationId, mBuilder.build());
                    }





                    share|improve this answer



















                    • 3





                      This is the only one that worked for me.

                      – RJB
                      Oct 3 '18 at 11:56






                    • 2





                      The only one that worked for all android versions.

                      – Mubashar
                      Oct 17 '18 at 14:26
















                    51














                    Here i post some quick solution function with intent handling



                    public void showNotification(Context context, String title, String body, Intent intent) {
                    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

                    int notificationId = 1;
                    String channelId = "channel-01";
                    String channelName = "Channel Name";
                    int importance = NotificationManager.IMPORTANCE_HIGH;

                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    NotificationChannel mChannel = new NotificationChannel(
                    channelId, channelName, importance);
                    notificationManager.createNotificationChannel(mChannel);
                    }

                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(title)
                    .setContentText(body);

                    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
                    stackBuilder.addNextIntent(intent);
                    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                    0,
                    PendingIntent.FLAG_UPDATE_CURRENT
                    );
                    mBuilder.setContentIntent(resultPendingIntent);

                    notificationManager.notify(notificationId, mBuilder.build());
                    }





                    share|improve this answer



















                    • 3





                      This is the only one that worked for me.

                      – RJB
                      Oct 3 '18 at 11:56






                    • 2





                      The only one that worked for all android versions.

                      – Mubashar
                      Oct 17 '18 at 14:26














                    51












                    51








                    51







                    Here i post some quick solution function with intent handling



                    public void showNotification(Context context, String title, String body, Intent intent) {
                    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

                    int notificationId = 1;
                    String channelId = "channel-01";
                    String channelName = "Channel Name";
                    int importance = NotificationManager.IMPORTANCE_HIGH;

                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    NotificationChannel mChannel = new NotificationChannel(
                    channelId, channelName, importance);
                    notificationManager.createNotificationChannel(mChannel);
                    }

                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(title)
                    .setContentText(body);

                    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
                    stackBuilder.addNextIntent(intent);
                    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                    0,
                    PendingIntent.FLAG_UPDATE_CURRENT
                    );
                    mBuilder.setContentIntent(resultPendingIntent);

                    notificationManager.notify(notificationId, mBuilder.build());
                    }





                    share|improve this answer













                    Here i post some quick solution function with intent handling



                    public void showNotification(Context context, String title, String body, Intent intent) {
                    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

                    int notificationId = 1;
                    String channelId = "channel-01";
                    String channelName = "Channel Name";
                    int importance = NotificationManager.IMPORTANCE_HIGH;

                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    NotificationChannel mChannel = new NotificationChannel(
                    channelId, channelName, importance);
                    notificationManager.createNotificationChannel(mChannel);
                    }

                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(title)
                    .setContentText(body);

                    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
                    stackBuilder.addNextIntent(intent);
                    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                    0,
                    PendingIntent.FLAG_UPDATE_CURRENT
                    );
                    mBuilder.setContentIntent(resultPendingIntent);

                    notificationManager.notify(notificationId, mBuilder.build());
                    }






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Jan 26 '18 at 19:40









                    FinalDarkFinalDark

                    9091122




                    9091122








                    • 3





                      This is the only one that worked for me.

                      – RJB
                      Oct 3 '18 at 11:56






                    • 2





                      The only one that worked for all android versions.

                      – Mubashar
                      Oct 17 '18 at 14:26














                    • 3





                      This is the only one that worked for me.

                      – RJB
                      Oct 3 '18 at 11:56






                    • 2





                      The only one that worked for all android versions.

                      – Mubashar
                      Oct 17 '18 at 14:26








                    3




                    3





                    This is the only one that worked for me.

                    – RJB
                    Oct 3 '18 at 11:56





                    This is the only one that worked for me.

                    – RJB
                    Oct 3 '18 at 11:56




                    2




                    2





                    The only one that worked for all android versions.

                    – Mubashar
                    Oct 17 '18 at 14:26





                    The only one that worked for all android versions.

                    – Mubashar
                    Oct 17 '18 at 14:26











                    10














                    public class MyFirebaseMessagingServices extends FirebaseMessagingService {
                    private NotificationChannel mChannel;
                    private NotificationManager notifManager;
                    @Override
                    public void onMessageReceived(RemoteMessage remoteMessage) {
                    if (remoteMessage.getData().size() > 0) {
                    try {
                    JSONObject jsonObject = new JSONObject(remoteMessage.getData());
                    displayCustomNotificationForOrders(jsonObject.getString("title"), jsonObject.getString("description"));
                    } catch (JSONException e) {
                    e.printStackTrace();
                    }
                    }
                    }

                    private void displayCustomNotificationForOrders(String title, String description) {
                    if (notifManager == null) {
                    notifManager = (NotificationManager) getSystemService
                    (Context.NOTIFICATION_SERVICE);
                    }
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    NotificationCompat.Builder builder;
                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent;
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    if (mChannel == null) {
                    mChannel = new NotificationChannel
                    ("0", title, importance);
                    mChannel.setDescription(description);
                    mChannel.enableVibration(true);
                    notifManager.createNotificationChannel(mChannel);
                    }
                    builder = new NotificationCompat.Builder(this, "0");

                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);
                    builder.setContentTitle(title)
                    .setSmallIcon(getNotificationIcon()) // required
                    .setContentText(description) // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setAutoCancel(true)
                    .setLargeIcon(BitmapFactory.decodeResource
                    (getResources(), R.mipmap.logo))
                    .setBadgeIconType(R.mipmap.logo)
                    .setContentIntent(pendingIntent)
                    .setSound(RingtoneManager.getDefaultUri
                    (RingtoneManager.TYPE_NOTIFICATION));
                    Notification notification = builder.build();
                    notifManager.notify(0, notification);
                    } else {

                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent = null;

                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);

                    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setContentTitle(title)
                    .setContentText(description)
                    .setAutoCancel(true)
                    .setColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
                    .setSound(defaultSoundUri)
                    .setSmallIcon(getNotificationIcon())
                    .setContentIntent(pendingIntent)
                    .setStyle(new NotificationCompat.BigTextStyle().setBigContentTitle(title).bigText(description));

                    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    notificationManager.notify(1251, notificationBuilder.build());
                    }
                    }

                    private int getNotificationIcon() {
                    boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
                    return useWhiteIcon ? R.mipmap.logo : R.mipmap.logo;
                    }
                    }





                    share|improve this answer


























                    • Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                      – Shihab Uddin
                      May 29 '18 at 8:05













                    • thanks working fine for me

                      – Mihir Patel
                      Sep 14 '18 at 7:06
















                    10














                    public class MyFirebaseMessagingServices extends FirebaseMessagingService {
                    private NotificationChannel mChannel;
                    private NotificationManager notifManager;
                    @Override
                    public void onMessageReceived(RemoteMessage remoteMessage) {
                    if (remoteMessage.getData().size() > 0) {
                    try {
                    JSONObject jsonObject = new JSONObject(remoteMessage.getData());
                    displayCustomNotificationForOrders(jsonObject.getString("title"), jsonObject.getString("description"));
                    } catch (JSONException e) {
                    e.printStackTrace();
                    }
                    }
                    }

                    private void displayCustomNotificationForOrders(String title, String description) {
                    if (notifManager == null) {
                    notifManager = (NotificationManager) getSystemService
                    (Context.NOTIFICATION_SERVICE);
                    }
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    NotificationCompat.Builder builder;
                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent;
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    if (mChannel == null) {
                    mChannel = new NotificationChannel
                    ("0", title, importance);
                    mChannel.setDescription(description);
                    mChannel.enableVibration(true);
                    notifManager.createNotificationChannel(mChannel);
                    }
                    builder = new NotificationCompat.Builder(this, "0");

                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);
                    builder.setContentTitle(title)
                    .setSmallIcon(getNotificationIcon()) // required
                    .setContentText(description) // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setAutoCancel(true)
                    .setLargeIcon(BitmapFactory.decodeResource
                    (getResources(), R.mipmap.logo))
                    .setBadgeIconType(R.mipmap.logo)
                    .setContentIntent(pendingIntent)
                    .setSound(RingtoneManager.getDefaultUri
                    (RingtoneManager.TYPE_NOTIFICATION));
                    Notification notification = builder.build();
                    notifManager.notify(0, notification);
                    } else {

                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent = null;

                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);

                    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setContentTitle(title)
                    .setContentText(description)
                    .setAutoCancel(true)
                    .setColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
                    .setSound(defaultSoundUri)
                    .setSmallIcon(getNotificationIcon())
                    .setContentIntent(pendingIntent)
                    .setStyle(new NotificationCompat.BigTextStyle().setBigContentTitle(title).bigText(description));

                    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    notificationManager.notify(1251, notificationBuilder.build());
                    }
                    }

                    private int getNotificationIcon() {
                    boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
                    return useWhiteIcon ? R.mipmap.logo : R.mipmap.logo;
                    }
                    }





                    share|improve this answer


























                    • Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                      – Shihab Uddin
                      May 29 '18 at 8:05













                    • thanks working fine for me

                      – Mihir Patel
                      Sep 14 '18 at 7:06














                    10












                    10








                    10







                    public class MyFirebaseMessagingServices extends FirebaseMessagingService {
                    private NotificationChannel mChannel;
                    private NotificationManager notifManager;
                    @Override
                    public void onMessageReceived(RemoteMessage remoteMessage) {
                    if (remoteMessage.getData().size() > 0) {
                    try {
                    JSONObject jsonObject = new JSONObject(remoteMessage.getData());
                    displayCustomNotificationForOrders(jsonObject.getString("title"), jsonObject.getString("description"));
                    } catch (JSONException e) {
                    e.printStackTrace();
                    }
                    }
                    }

                    private void displayCustomNotificationForOrders(String title, String description) {
                    if (notifManager == null) {
                    notifManager = (NotificationManager) getSystemService
                    (Context.NOTIFICATION_SERVICE);
                    }
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    NotificationCompat.Builder builder;
                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent;
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    if (mChannel == null) {
                    mChannel = new NotificationChannel
                    ("0", title, importance);
                    mChannel.setDescription(description);
                    mChannel.enableVibration(true);
                    notifManager.createNotificationChannel(mChannel);
                    }
                    builder = new NotificationCompat.Builder(this, "0");

                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);
                    builder.setContentTitle(title)
                    .setSmallIcon(getNotificationIcon()) // required
                    .setContentText(description) // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setAutoCancel(true)
                    .setLargeIcon(BitmapFactory.decodeResource
                    (getResources(), R.mipmap.logo))
                    .setBadgeIconType(R.mipmap.logo)
                    .setContentIntent(pendingIntent)
                    .setSound(RingtoneManager.getDefaultUri
                    (RingtoneManager.TYPE_NOTIFICATION));
                    Notification notification = builder.build();
                    notifManager.notify(0, notification);
                    } else {

                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent = null;

                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);

                    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setContentTitle(title)
                    .setContentText(description)
                    .setAutoCancel(true)
                    .setColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
                    .setSound(defaultSoundUri)
                    .setSmallIcon(getNotificationIcon())
                    .setContentIntent(pendingIntent)
                    .setStyle(new NotificationCompat.BigTextStyle().setBigContentTitle(title).bigText(description));

                    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    notificationManager.notify(1251, notificationBuilder.build());
                    }
                    }

                    private int getNotificationIcon() {
                    boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
                    return useWhiteIcon ? R.mipmap.logo : R.mipmap.logo;
                    }
                    }





                    share|improve this answer















                    public class MyFirebaseMessagingServices extends FirebaseMessagingService {
                    private NotificationChannel mChannel;
                    private NotificationManager notifManager;
                    @Override
                    public void onMessageReceived(RemoteMessage remoteMessage) {
                    if (remoteMessage.getData().size() > 0) {
                    try {
                    JSONObject jsonObject = new JSONObject(remoteMessage.getData());
                    displayCustomNotificationForOrders(jsonObject.getString("title"), jsonObject.getString("description"));
                    } catch (JSONException e) {
                    e.printStackTrace();
                    }
                    }
                    }

                    private void displayCustomNotificationForOrders(String title, String description) {
                    if (notifManager == null) {
                    notifManager = (NotificationManager) getSystemService
                    (Context.NOTIFICATION_SERVICE);
                    }
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    NotificationCompat.Builder builder;
                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent;
                    int importance = NotificationManager.IMPORTANCE_HIGH;
                    if (mChannel == null) {
                    mChannel = new NotificationChannel
                    ("0", title, importance);
                    mChannel.setDescription(description);
                    mChannel.enableVibration(true);
                    notifManager.createNotificationChannel(mChannel);
                    }
                    builder = new NotificationCompat.Builder(this, "0");

                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);
                    builder.setContentTitle(title)
                    .setSmallIcon(getNotificationIcon()) // required
                    .setContentText(description) // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setAutoCancel(true)
                    .setLargeIcon(BitmapFactory.decodeResource
                    (getResources(), R.mipmap.logo))
                    .setBadgeIconType(R.mipmap.logo)
                    .setContentIntent(pendingIntent)
                    .setSound(RingtoneManager.getDefaultUri
                    (RingtoneManager.TYPE_NOTIFICATION));
                    Notification notification = builder.build();
                    notifManager.notify(0, notification);
                    } else {

                    Intent intent = new Intent(this, Dashboard.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    PendingIntent pendingIntent = null;

                    pendingIntent = PendingIntent.getActivity(this, 1251, intent, PendingIntent.FLAG_ONE_SHOT);

                    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setContentTitle(title)
                    .setContentText(description)
                    .setAutoCancel(true)
                    .setColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
                    .setSound(defaultSoundUri)
                    .setSmallIcon(getNotificationIcon())
                    .setContentIntent(pendingIntent)
                    .setStyle(new NotificationCompat.BigTextStyle().setBigContentTitle(title).bigText(description));

                    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    notificationManager.notify(1251, notificationBuilder.build());
                    }
                    }

                    private int getNotificationIcon() {
                    boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
                    return useWhiteIcon ? R.mipmap.logo : R.mipmap.logo;
                    }
                    }






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Mar 7 '18 at 12:02

























                    answered Mar 7 '18 at 11:57









                    MohsinaliMohsinali

                    16328




                    16328













                    • Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                      – Shihab Uddin
                      May 29 '18 at 8:05













                    • thanks working fine for me

                      – Mihir Patel
                      Sep 14 '18 at 7:06



















                    • Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                      – Shihab Uddin
                      May 29 '18 at 8:05













                    • thanks working fine for me

                      – Mihir Patel
                      Sep 14 '18 at 7:06

















                    Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                    – Shihab Uddin
                    May 29 '18 at 8:05







                    Without setting setChannelId(CHANNEL_ID) on NotificationCompat.Builder notifications not shows.

                    – Shihab Uddin
                    May 29 '18 at 8:05















                    thanks working fine for me

                    – Mihir Patel
                    Sep 14 '18 at 7:06





                    thanks working fine for me

                    – Mihir Patel
                    Sep 14 '18 at 7:06











                    4














                    Android Notification Demo App for Android O as well as lower API versions.
                    Here is best demo app on GitHub-Demo 1 and GitHub-Demo 2.



                    enter image description here






                    share|improve this answer



















                    • 1





                      Its worked for me!!!! thank you

                      – Harish
                      Oct 16 '18 at 14:00
















                    4














                    Android Notification Demo App for Android O as well as lower API versions.
                    Here is best demo app on GitHub-Demo 1 and GitHub-Demo 2.



                    enter image description here






                    share|improve this answer



















                    • 1





                      Its worked for me!!!! thank you

                      – Harish
                      Oct 16 '18 at 14:00














                    4












                    4








                    4







                    Android Notification Demo App for Android O as well as lower API versions.
                    Here is best demo app on GitHub-Demo 1 and GitHub-Demo 2.



                    enter image description here






                    share|improve this answer













                    Android Notification Demo App for Android O as well as lower API versions.
                    Here is best demo app on GitHub-Demo 1 and GitHub-Demo 2.



                    enter image description here







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Sep 1 '18 at 22:37









                    AttaullahAttaullah

                    1,12412139




                    1,12412139








                    • 1





                      Its worked for me!!!! thank you

                      – Harish
                      Oct 16 '18 at 14:00














                    • 1





                      Its worked for me!!!! thank you

                      – Harish
                      Oct 16 '18 at 14:00








                    1




                    1





                    Its worked for me!!!! thank you

                    – Harish
                    Oct 16 '18 at 14:00





                    Its worked for me!!!! thank you

                    – Harish
                    Oct 16 '18 at 14:00











                    3














                    Try this Code :






                    public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                    private static final String TAG = "MY Channel";
                    Bitmap bitmap;

                    @Override
                    public void onMessageReceived(RemoteMessage remoteMessage) {
                    super.onMessageReceived(remoteMessage);
                    Utility.printMessage(remoteMessage.getNotification().getBody());

                    // Check if message contains a data payload.
                    if (remoteMessage.getData().size() > 0) {
                    Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                    String title = remoteMessage.getData().get("title");
                    String body = remoteMessage.getData().get("body");
                    String message = remoteMessage.getData().get("message");
                    String imageUri = remoteMessage.getData().get("image");
                    String msg_id = remoteMessage.getData().get("msg-id");


                    Log.d(TAG, "1: " + title);
                    Log.d(TAG, "2: " + body);
                    Log.d(TAG, "3: " + message);
                    Log.d(TAG, "4: " + imageUri);


                    if (imageUri != null)
                    bitmap = getBitmapfromUrl(imageUri);

                    }

                    sendNotification(message, bitmap, title, msg_id);

                    }


                    }

                    private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                    int notifyID = 0;
                    try {
                    notifyID = Integer.parseInt(msg_id);
                    } catch (NumberFormatException e) {
                    e.printStackTrace();
                    }

                    String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                    Intent intent = new Intent(this, HomeActivity.class);
                    intent.putExtra("title", title);
                    intent.putExtra("message", message);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                    PendingIntent.FLAG_ONE_SHOT);

                    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                    .setContentTitle(title)
                    .setSmallIcon(R.mipmap.ic_notification)
                    .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText(message))
                    .setContentText(message)
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setChannelId(CHANNEL_ID)
                    .setContentIntent(pendingIntent);

                    if (image != null) {
                    notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                    .bigPicture(image)
                    .setSummaryText(message)
                    .bigLargeIcon(null));
                    }


                    NotificationManager notificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                    CharSequence name = "My New Channel"; // The user-visible name of the channel.
                    int importance = NotificationManager.IMPORTANCE_HIGH;

                    NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                    notificationManager.createNotificationChannel(channel);
                    }

                    notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                    }

                    public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                    try {
                    URL url = new URL(imageUrl);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setDoInput(true);
                    connection.connect();
                    InputStream input = connection.getInputStream();
                    Bitmap bitmap = BitmapFactory.decodeStream(input);
                    return bitmap;

                    } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return null;

                    }

                    }

                    }








                    share|improve this answer




























                      3














                      Try this Code :






                      public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                      private static final String TAG = "MY Channel";
                      Bitmap bitmap;

                      @Override
                      public void onMessageReceived(RemoteMessage remoteMessage) {
                      super.onMessageReceived(remoteMessage);
                      Utility.printMessage(remoteMessage.getNotification().getBody());

                      // Check if message contains a data payload.
                      if (remoteMessage.getData().size() > 0) {
                      Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                      String title = remoteMessage.getData().get("title");
                      String body = remoteMessage.getData().get("body");
                      String message = remoteMessage.getData().get("message");
                      String imageUri = remoteMessage.getData().get("image");
                      String msg_id = remoteMessage.getData().get("msg-id");


                      Log.d(TAG, "1: " + title);
                      Log.d(TAG, "2: " + body);
                      Log.d(TAG, "3: " + message);
                      Log.d(TAG, "4: " + imageUri);


                      if (imageUri != null)
                      bitmap = getBitmapfromUrl(imageUri);

                      }

                      sendNotification(message, bitmap, title, msg_id);

                      }


                      }

                      private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                      int notifyID = 0;
                      try {
                      notifyID = Integer.parseInt(msg_id);
                      } catch (NumberFormatException e) {
                      e.printStackTrace();
                      }

                      String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                      Intent intent = new Intent(this, HomeActivity.class);
                      intent.putExtra("title", title);
                      intent.putExtra("message", message);
                      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                      PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                      PendingIntent.FLAG_ONE_SHOT);

                      Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                      NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                      .setContentTitle(title)
                      .setSmallIcon(R.mipmap.ic_notification)
                      .setStyle(new NotificationCompat.BigTextStyle()
                      .bigText(message))
                      .setContentText(message)
                      .setAutoCancel(true)
                      .setSound(defaultSoundUri)
                      .setChannelId(CHANNEL_ID)
                      .setContentIntent(pendingIntent);

                      if (image != null) {
                      notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                      .bigPicture(image)
                      .setSummaryText(message)
                      .bigLargeIcon(null));
                      }


                      NotificationManager notificationManager =
                      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                      CharSequence name = "My New Channel"; // The user-visible name of the channel.
                      int importance = NotificationManager.IMPORTANCE_HIGH;

                      NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                      notificationManager.createNotificationChannel(channel);
                      }

                      notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                      }

                      public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                      try {
                      URL url = new URL(imageUrl);
                      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                      connection.setDoInput(true);
                      connection.connect();
                      InputStream input = connection.getInputStream();
                      Bitmap bitmap = BitmapFactory.decodeStream(input);
                      return bitmap;

                      } catch (Exception e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      return null;

                      }

                      }

                      }








                      share|improve this answer


























                        3












                        3








                        3







                        Try this Code :






                        public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                        private static final String TAG = "MY Channel";
                        Bitmap bitmap;

                        @Override
                        public void onMessageReceived(RemoteMessage remoteMessage) {
                        super.onMessageReceived(remoteMessage);
                        Utility.printMessage(remoteMessage.getNotification().getBody());

                        // Check if message contains a data payload.
                        if (remoteMessage.getData().size() > 0) {
                        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                        String title = remoteMessage.getData().get("title");
                        String body = remoteMessage.getData().get("body");
                        String message = remoteMessage.getData().get("message");
                        String imageUri = remoteMessage.getData().get("image");
                        String msg_id = remoteMessage.getData().get("msg-id");


                        Log.d(TAG, "1: " + title);
                        Log.d(TAG, "2: " + body);
                        Log.d(TAG, "3: " + message);
                        Log.d(TAG, "4: " + imageUri);


                        if (imageUri != null)
                        bitmap = getBitmapfromUrl(imageUri);

                        }

                        sendNotification(message, bitmap, title, msg_id);

                        }


                        }

                        private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                        int notifyID = 0;
                        try {
                        notifyID = Integer.parseInt(msg_id);
                        } catch (NumberFormatException e) {
                        e.printStackTrace();
                        }

                        String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                        Intent intent = new Intent(this, HomeActivity.class);
                        intent.putExtra("title", title);
                        intent.putExtra("message", message);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                        PendingIntent.FLAG_ONE_SHOT);

                        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                        .setContentTitle(title)
                        .setSmallIcon(R.mipmap.ic_notification)
                        .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(message))
                        .setContentText(message)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setChannelId(CHANNEL_ID)
                        .setContentIntent(pendingIntent);

                        if (image != null) {
                        notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                        .bigPicture(image)
                        .setSummaryText(message)
                        .bigLargeIcon(null));
                        }


                        NotificationManager notificationManager =
                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                        CharSequence name = "My New Channel"; // The user-visible name of the channel.
                        int importance = NotificationManager.IMPORTANCE_HIGH;

                        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                        notificationManager.createNotificationChannel(channel);
                        }

                        notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                        }

                        public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                        try {
                        URL url = new URL(imageUrl);
                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                        connection.setDoInput(true);
                        connection.connect();
                        InputStream input = connection.getInputStream();
                        Bitmap bitmap = BitmapFactory.decodeStream(input);
                        return bitmap;

                        } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        return null;

                        }

                        }

                        }








                        share|improve this answer













                        Try this Code :






                        public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                        private static final String TAG = "MY Channel";
                        Bitmap bitmap;

                        @Override
                        public void onMessageReceived(RemoteMessage remoteMessage) {
                        super.onMessageReceived(remoteMessage);
                        Utility.printMessage(remoteMessage.getNotification().getBody());

                        // Check if message contains a data payload.
                        if (remoteMessage.getData().size() > 0) {
                        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                        String title = remoteMessage.getData().get("title");
                        String body = remoteMessage.getData().get("body");
                        String message = remoteMessage.getData().get("message");
                        String imageUri = remoteMessage.getData().get("image");
                        String msg_id = remoteMessage.getData().get("msg-id");


                        Log.d(TAG, "1: " + title);
                        Log.d(TAG, "2: " + body);
                        Log.d(TAG, "3: " + message);
                        Log.d(TAG, "4: " + imageUri);


                        if (imageUri != null)
                        bitmap = getBitmapfromUrl(imageUri);

                        }

                        sendNotification(message, bitmap, title, msg_id);

                        }


                        }

                        private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                        int notifyID = 0;
                        try {
                        notifyID = Integer.parseInt(msg_id);
                        } catch (NumberFormatException e) {
                        e.printStackTrace();
                        }

                        String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                        Intent intent = new Intent(this, HomeActivity.class);
                        intent.putExtra("title", title);
                        intent.putExtra("message", message);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                        PendingIntent.FLAG_ONE_SHOT);

                        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                        .setContentTitle(title)
                        .setSmallIcon(R.mipmap.ic_notification)
                        .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(message))
                        .setContentText(message)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setChannelId(CHANNEL_ID)
                        .setContentIntent(pendingIntent);

                        if (image != null) {
                        notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                        .bigPicture(image)
                        .setSummaryText(message)
                        .bigLargeIcon(null));
                        }


                        NotificationManager notificationManager =
                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                        CharSequence name = "My New Channel"; // The user-visible name of the channel.
                        int importance = NotificationManager.IMPORTANCE_HIGH;

                        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                        notificationManager.createNotificationChannel(channel);
                        }

                        notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                        }

                        public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                        try {
                        URL url = new URL(imageUrl);
                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                        connection.setDoInput(true);
                        connection.connect();
                        InputStream input = connection.getInputStream();
                        Bitmap bitmap = BitmapFactory.decodeStream(input);
                        return bitmap;

                        } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        return null;

                        }

                        }

                        }








                        public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                        private static final String TAG = "MY Channel";
                        Bitmap bitmap;

                        @Override
                        public void onMessageReceived(RemoteMessage remoteMessage) {
                        super.onMessageReceived(remoteMessage);
                        Utility.printMessage(remoteMessage.getNotification().getBody());

                        // Check if message contains a data payload.
                        if (remoteMessage.getData().size() > 0) {
                        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                        String title = remoteMessage.getData().get("title");
                        String body = remoteMessage.getData().get("body");
                        String message = remoteMessage.getData().get("message");
                        String imageUri = remoteMessage.getData().get("image");
                        String msg_id = remoteMessage.getData().get("msg-id");


                        Log.d(TAG, "1: " + title);
                        Log.d(TAG, "2: " + body);
                        Log.d(TAG, "3: " + message);
                        Log.d(TAG, "4: " + imageUri);


                        if (imageUri != null)
                        bitmap = getBitmapfromUrl(imageUri);

                        }

                        sendNotification(message, bitmap, title, msg_id);

                        }


                        }

                        private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                        int notifyID = 0;
                        try {
                        notifyID = Integer.parseInt(msg_id);
                        } catch (NumberFormatException e) {
                        e.printStackTrace();
                        }

                        String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                        Intent intent = new Intent(this, HomeActivity.class);
                        intent.putExtra("title", title);
                        intent.putExtra("message", message);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                        PendingIntent.FLAG_ONE_SHOT);

                        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                        .setContentTitle(title)
                        .setSmallIcon(R.mipmap.ic_notification)
                        .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(message))
                        .setContentText(message)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setChannelId(CHANNEL_ID)
                        .setContentIntent(pendingIntent);

                        if (image != null) {
                        notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                        .bigPicture(image)
                        .setSummaryText(message)
                        .bigLargeIcon(null));
                        }


                        NotificationManager notificationManager =
                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                        CharSequence name = "My New Channel"; // The user-visible name of the channel.
                        int importance = NotificationManager.IMPORTANCE_HIGH;

                        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                        notificationManager.createNotificationChannel(channel);
                        }

                        notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                        }

                        public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                        try {
                        URL url = new URL(imageUrl);
                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                        connection.setDoInput(true);
                        connection.connect();
                        InputStream input = connection.getInputStream();
                        Bitmap bitmap = BitmapFactory.decodeStream(input);
                        return bitmap;

                        } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        return null;

                        }

                        }

                        }





                        public class FirebaseMessagingServices extends com.google.firebase.messaging.FirebaseMessagingService {
                        private static final String TAG = "MY Channel";
                        Bitmap bitmap;

                        @Override
                        public void onMessageReceived(RemoteMessage remoteMessage) {
                        super.onMessageReceived(remoteMessage);
                        Utility.printMessage(remoteMessage.getNotification().getBody());

                        // Check if message contains a data payload.
                        if (remoteMessage.getData().size() > 0) {
                        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

                        String title = remoteMessage.getData().get("title");
                        String body = remoteMessage.getData().get("body");
                        String message = remoteMessage.getData().get("message");
                        String imageUri = remoteMessage.getData().get("image");
                        String msg_id = remoteMessage.getData().get("msg-id");


                        Log.d(TAG, "1: " + title);
                        Log.d(TAG, "2: " + body);
                        Log.d(TAG, "3: " + message);
                        Log.d(TAG, "4: " + imageUri);


                        if (imageUri != null)
                        bitmap = getBitmapfromUrl(imageUri);

                        }

                        sendNotification(message, bitmap, title, msg_id);

                        }


                        }

                        private void sendNotification(String message, Bitmap image, String title,String msg_id) {
                        int notifyID = 0;
                        try {
                        notifyID = Integer.parseInt(msg_id);
                        } catch (NumberFormatException e) {
                        e.printStackTrace();
                        }

                        String CHANNEL_ID = "my_channel_01"; // The id of the channel.
                        Intent intent = new Intent(this, HomeActivity.class);
                        intent.putExtra("title", title);
                        intent.putExtra("message", message);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


                        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                        PendingIntent.FLAG_ONE_SHOT);

                        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "01")
                        .setContentTitle(title)
                        .setSmallIcon(R.mipmap.ic_notification)
                        .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(message))
                        .setContentText(message)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setChannelId(CHANNEL_ID)
                        .setContentIntent(pendingIntent);

                        if (image != null) {
                        notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() //Set the Image in Big picture Style with text.
                        .bigPicture(image)
                        .setSummaryText(message)
                        .bigLargeIcon(null));
                        }


                        NotificationManager notificationManager =
                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // For Oreo and greater than it, we required Notification Channel.
                        CharSequence name = "My New Channel"; // The user-visible name of the channel.
                        int importance = NotificationManager.IMPORTANCE_HIGH;

                        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,name, importance); //Create Notification Channel
                        notificationManager.createNotificationChannel(channel);
                        }

                        notificationManager.notify(notifyID /* ID of notification */, notificationBuilder.build());
                        }

                        public Bitmap getBitmapfromUrl(String imageUrl) { //This method returns the Bitmap from Url;
                        try {
                        URL url = new URL(imageUrl);
                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                        connection.setDoInput(true);
                        connection.connect();
                        InputStream input = connection.getInputStream();
                        Bitmap bitmap = BitmapFactory.decodeStream(input);
                        return bitmap;

                        } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        return null;

                        }

                        }

                        }






                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Dec 29 '18 at 7:00









                        Developer's LifeDeveloper's Life

                        412




                        412























                            3














                            If you can't get the push notification in 26+ SDK version?




                            your solution is here:




                            public static void showNotification(Context context, String title, String messageBody) {

                            boolean isLoggedIn = SessionManager.getInstance().isLoggedIn();
                            Log.e(TAG, "User logged in state: " + isLoggedIn);

                            Intent intent = null;
                            if (isLoggedIn) {
                            //goto notification screen
                            intent = new Intent(context, MainActivity.class);
                            intent.putExtra(Extras.EXTRA_JUMP_TO, DrawerItems.ITEM_NOTIFICATION);
                            } else {
                            //goto login screen
                            intent = new Intent(context, LandingActivity.class);
                            }

                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

                            //Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                            //Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_app_notification_icon);

                            String channel_id = createNotificationChannel(context);

                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)
                            .setContentTitle(title)
                            .setContentText(messageBody)
                            .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
                            /*.setLargeIcon(largeIcon)*/
                            .setSmallIcon(R.drawable.app_logo_color) //needs white icon with transparent BG (For all platforms)
                            .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
                            .setVibrate(new long{1000, 1000})
                            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
                            .setContentIntent(pendingIntent)
                            .setPriority(Notification.PRIORITY_HIGH)
                            .setAutoCancel(true);

                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            notificationManager.notify((int) ((new Date(System.currentTimeMillis()).getTime() / 1000L) % Integer.MAX_VALUE) /* ID of notification */, notificationBuilder.build());
                            }

                            public static String createNotificationChannel(Context context) {

                            // NotificationChannels are required for Notifications on O (API 26) and above.
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                            // The id of the channel.
                            String channelId = "Channel_id";

                            // The user-visible name of the channel.
                            CharSequence channelName = "Application_name";
                            // The user-visible description of the channel.
                            String channelDescription = "Application_name Alert";
                            int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
                            boolean channelEnableVibrate = true;
                            // int channelLockscreenVisibility = Notification.;

                            // Initializes NotificationChannel.
                            NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
                            notificationChannel.setDescription(channelDescription);
                            notificationChannel.enableVibration(channelEnableVibrate);
                            // notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);

                            // Adds NotificationChannel to system. Attempting to create an existing notification
                            // channel with its original values performs no operation, so it's safe to perform the
                            // below sequence.
                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            assert notificationManager != null;
                            notificationManager.createNotificationChannel(notificationChannel);

                            return channelId;
                            } else {
                            // Returns null for pre-O (26) devices.
                            return null;
                            }
                            }


                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)



                            -> Here you will get push notification using channel_id in your device which is consist 26+ SDK version.



                            -> Because, the NotificationCompat.Builder(context) is deprecated method now you will use an updated version which is having two parameters one is context, other is channel_id.



                            -> NotificationCompat.Builder(context, channel_id) updated method. try it.



                            -> In 26+ SDK version of device you will create channel_id every time.






                            share|improve this answer


























                            • Tested in my app, definitely worked

                              – zoom
                              Jan 13 at 11:06











                            • Thanks I was using a static notifcation_id to notify

                              – pratham kesarkar
                              Jan 31 at 10:32











                            • Can't resolve SessionManager.

                              – Taslim Oseni
                              Feb 27 at 16:29
















                            3














                            If you can't get the push notification in 26+ SDK version?




                            your solution is here:




                            public static void showNotification(Context context, String title, String messageBody) {

                            boolean isLoggedIn = SessionManager.getInstance().isLoggedIn();
                            Log.e(TAG, "User logged in state: " + isLoggedIn);

                            Intent intent = null;
                            if (isLoggedIn) {
                            //goto notification screen
                            intent = new Intent(context, MainActivity.class);
                            intent.putExtra(Extras.EXTRA_JUMP_TO, DrawerItems.ITEM_NOTIFICATION);
                            } else {
                            //goto login screen
                            intent = new Intent(context, LandingActivity.class);
                            }

                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

                            //Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                            //Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_app_notification_icon);

                            String channel_id = createNotificationChannel(context);

                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)
                            .setContentTitle(title)
                            .setContentText(messageBody)
                            .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
                            /*.setLargeIcon(largeIcon)*/
                            .setSmallIcon(R.drawable.app_logo_color) //needs white icon with transparent BG (For all platforms)
                            .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
                            .setVibrate(new long{1000, 1000})
                            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
                            .setContentIntent(pendingIntent)
                            .setPriority(Notification.PRIORITY_HIGH)
                            .setAutoCancel(true);

                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            notificationManager.notify((int) ((new Date(System.currentTimeMillis()).getTime() / 1000L) % Integer.MAX_VALUE) /* ID of notification */, notificationBuilder.build());
                            }

                            public static String createNotificationChannel(Context context) {

                            // NotificationChannels are required for Notifications on O (API 26) and above.
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                            // The id of the channel.
                            String channelId = "Channel_id";

                            // The user-visible name of the channel.
                            CharSequence channelName = "Application_name";
                            // The user-visible description of the channel.
                            String channelDescription = "Application_name Alert";
                            int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
                            boolean channelEnableVibrate = true;
                            // int channelLockscreenVisibility = Notification.;

                            // Initializes NotificationChannel.
                            NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
                            notificationChannel.setDescription(channelDescription);
                            notificationChannel.enableVibration(channelEnableVibrate);
                            // notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);

                            // Adds NotificationChannel to system. Attempting to create an existing notification
                            // channel with its original values performs no operation, so it's safe to perform the
                            // below sequence.
                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            assert notificationManager != null;
                            notificationManager.createNotificationChannel(notificationChannel);

                            return channelId;
                            } else {
                            // Returns null for pre-O (26) devices.
                            return null;
                            }
                            }


                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)



                            -> Here you will get push notification using channel_id in your device which is consist 26+ SDK version.



                            -> Because, the NotificationCompat.Builder(context) is deprecated method now you will use an updated version which is having two parameters one is context, other is channel_id.



                            -> NotificationCompat.Builder(context, channel_id) updated method. try it.



                            -> In 26+ SDK version of device you will create channel_id every time.






                            share|improve this answer


























                            • Tested in my app, definitely worked

                              – zoom
                              Jan 13 at 11:06











                            • Thanks I was using a static notifcation_id to notify

                              – pratham kesarkar
                              Jan 31 at 10:32











                            • Can't resolve SessionManager.

                              – Taslim Oseni
                              Feb 27 at 16:29














                            3












                            3








                            3







                            If you can't get the push notification in 26+ SDK version?




                            your solution is here:




                            public static void showNotification(Context context, String title, String messageBody) {

                            boolean isLoggedIn = SessionManager.getInstance().isLoggedIn();
                            Log.e(TAG, "User logged in state: " + isLoggedIn);

                            Intent intent = null;
                            if (isLoggedIn) {
                            //goto notification screen
                            intent = new Intent(context, MainActivity.class);
                            intent.putExtra(Extras.EXTRA_JUMP_TO, DrawerItems.ITEM_NOTIFICATION);
                            } else {
                            //goto login screen
                            intent = new Intent(context, LandingActivity.class);
                            }

                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

                            //Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                            //Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_app_notification_icon);

                            String channel_id = createNotificationChannel(context);

                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)
                            .setContentTitle(title)
                            .setContentText(messageBody)
                            .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
                            /*.setLargeIcon(largeIcon)*/
                            .setSmallIcon(R.drawable.app_logo_color) //needs white icon with transparent BG (For all platforms)
                            .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
                            .setVibrate(new long{1000, 1000})
                            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
                            .setContentIntent(pendingIntent)
                            .setPriority(Notification.PRIORITY_HIGH)
                            .setAutoCancel(true);

                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            notificationManager.notify((int) ((new Date(System.currentTimeMillis()).getTime() / 1000L) % Integer.MAX_VALUE) /* ID of notification */, notificationBuilder.build());
                            }

                            public static String createNotificationChannel(Context context) {

                            // NotificationChannels are required for Notifications on O (API 26) and above.
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                            // The id of the channel.
                            String channelId = "Channel_id";

                            // The user-visible name of the channel.
                            CharSequence channelName = "Application_name";
                            // The user-visible description of the channel.
                            String channelDescription = "Application_name Alert";
                            int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
                            boolean channelEnableVibrate = true;
                            // int channelLockscreenVisibility = Notification.;

                            // Initializes NotificationChannel.
                            NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
                            notificationChannel.setDescription(channelDescription);
                            notificationChannel.enableVibration(channelEnableVibrate);
                            // notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);

                            // Adds NotificationChannel to system. Attempting to create an existing notification
                            // channel with its original values performs no operation, so it's safe to perform the
                            // below sequence.
                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            assert notificationManager != null;
                            notificationManager.createNotificationChannel(notificationChannel);

                            return channelId;
                            } else {
                            // Returns null for pre-O (26) devices.
                            return null;
                            }
                            }


                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)



                            -> Here you will get push notification using channel_id in your device which is consist 26+ SDK version.



                            -> Because, the NotificationCompat.Builder(context) is deprecated method now you will use an updated version which is having two parameters one is context, other is channel_id.



                            -> NotificationCompat.Builder(context, channel_id) updated method. try it.



                            -> In 26+ SDK version of device you will create channel_id every time.






                            share|improve this answer















                            If you can't get the push notification in 26+ SDK version?




                            your solution is here:




                            public static void showNotification(Context context, String title, String messageBody) {

                            boolean isLoggedIn = SessionManager.getInstance().isLoggedIn();
                            Log.e(TAG, "User logged in state: " + isLoggedIn);

                            Intent intent = null;
                            if (isLoggedIn) {
                            //goto notification screen
                            intent = new Intent(context, MainActivity.class);
                            intent.putExtra(Extras.EXTRA_JUMP_TO, DrawerItems.ITEM_NOTIFICATION);
                            } else {
                            //goto login screen
                            intent = new Intent(context, LandingActivity.class);
                            }

                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

                            //Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                            //Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_app_notification_icon);

                            String channel_id = createNotificationChannel(context);

                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)
                            .setContentTitle(title)
                            .setContentText(messageBody)
                            .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
                            /*.setLargeIcon(largeIcon)*/
                            .setSmallIcon(R.drawable.app_logo_color) //needs white icon with transparent BG (For all platforms)
                            .setColor(ContextCompat.getColor(context, R.color.colorPrimaryDark))
                            .setVibrate(new long{1000, 1000})
                            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
                            .setContentIntent(pendingIntent)
                            .setPriority(Notification.PRIORITY_HIGH)
                            .setAutoCancel(true);

                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            notificationManager.notify((int) ((new Date(System.currentTimeMillis()).getTime() / 1000L) % Integer.MAX_VALUE) /* ID of notification */, notificationBuilder.build());
                            }

                            public static String createNotificationChannel(Context context) {

                            // NotificationChannels are required for Notifications on O (API 26) and above.
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                            // The id of the channel.
                            String channelId = "Channel_id";

                            // The user-visible name of the channel.
                            CharSequence channelName = "Application_name";
                            // The user-visible description of the channel.
                            String channelDescription = "Application_name Alert";
                            int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
                            boolean channelEnableVibrate = true;
                            // int channelLockscreenVisibility = Notification.;

                            // Initializes NotificationChannel.
                            NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
                            notificationChannel.setDescription(channelDescription);
                            notificationChannel.enableVibration(channelEnableVibrate);
                            // notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);

                            // Adds NotificationChannel to system. Attempting to create an existing notification
                            // channel with its original values performs no operation, so it's safe to perform the
                            // below sequence.
                            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                            assert notificationManager != null;
                            notificationManager.createNotificationChannel(notificationChannel);

                            return channelId;
                            } else {
                            // Returns null for pre-O (26) devices.
                            return null;
                            }
                            }


                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channel_id)



                            -> Here you will get push notification using channel_id in your device which is consist 26+ SDK version.



                            -> Because, the NotificationCompat.Builder(context) is deprecated method now you will use an updated version which is having two parameters one is context, other is channel_id.



                            -> NotificationCompat.Builder(context, channel_id) updated method. try it.



                            -> In 26+ SDK version of device you will create channel_id every time.







                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited Mar 1 at 3:24

























                            answered Dec 14 '18 at 5:42









                            D PrinceD Prince

                            514518




                            514518













                            • Tested in my app, definitely worked

                              – zoom
                              Jan 13 at 11:06











                            • Thanks I was using a static notifcation_id to notify

                              – pratham kesarkar
                              Jan 31 at 10:32











                            • Can't resolve SessionManager.

                              – Taslim Oseni
                              Feb 27 at 16:29



















                            • Tested in my app, definitely worked

                              – zoom
                              Jan 13 at 11:06











                            • Thanks I was using a static notifcation_id to notify

                              – pratham kesarkar
                              Jan 31 at 10:32











                            • Can't resolve SessionManager.

                              – Taslim Oseni
                              Feb 27 at 16:29

















                            Tested in my app, definitely worked

                            – zoom
                            Jan 13 at 11:06





                            Tested in my app, definitely worked

                            – zoom
                            Jan 13 at 11:06













                            Thanks I was using a static notifcation_id to notify

                            – pratham kesarkar
                            Jan 31 at 10:32





                            Thanks I was using a static notifcation_id to notify

                            – pratham kesarkar
                            Jan 31 at 10:32













                            Can't resolve SessionManager.

                            – Taslim Oseni
                            Feb 27 at 16:29





                            Can't resolve SessionManager.

                            – Taslim Oseni
                            Feb 27 at 16:29











                            2














                            This is bug in firebase api version 11.8.0, So if you reduce API version you will not face this issue.






                            share|improve this answer
























                            • could You provide link to this information?

                              – deadfish
                              Mar 19 '18 at 11:28











                            • Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                              – deadfish
                              Mar 19 '18 at 13:16











                            • No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                              – M.Noman
                              Mar 22 '18 at 17:38








                            • 1





                              Thanks, it's good to know.

                              – deadfish
                              Mar 23 '18 at 12:35
















                            2














                            This is bug in firebase api version 11.8.0, So if you reduce API version you will not face this issue.






                            share|improve this answer
























                            • could You provide link to this information?

                              – deadfish
                              Mar 19 '18 at 11:28











                            • Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                              – deadfish
                              Mar 19 '18 at 13:16











                            • No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                              – M.Noman
                              Mar 22 '18 at 17:38








                            • 1





                              Thanks, it's good to know.

                              – deadfish
                              Mar 23 '18 at 12:35














                            2












                            2








                            2







                            This is bug in firebase api version 11.8.0, So if you reduce API version you will not face this issue.






                            share|improve this answer













                            This is bug in firebase api version 11.8.0, So if you reduce API version you will not face this issue.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Mar 8 '18 at 5:12









                            M.NomanM.Noman

                            21648




                            21648













                            • could You provide link to this information?

                              – deadfish
                              Mar 19 '18 at 11:28











                            • Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                              – deadfish
                              Mar 19 '18 at 13:16











                            • No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                              – M.Noman
                              Mar 22 '18 at 17:38








                            • 1





                              Thanks, it's good to know.

                              – deadfish
                              Mar 23 '18 at 12:35



















                            • could You provide link to this information?

                              – deadfish
                              Mar 19 '18 at 11:28











                            • Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                              – deadfish
                              Mar 19 '18 at 13:16











                            • No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                              – M.Noman
                              Mar 22 '18 at 17:38








                            • 1





                              Thanks, it's good to know.

                              – deadfish
                              Mar 23 '18 at 12:35

















                            could You provide link to this information?

                            – deadfish
                            Mar 19 '18 at 11:28





                            could You provide link to this information?

                            – deadfish
                            Mar 19 '18 at 11:28













                            Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                            – deadfish
                            Mar 19 '18 at 13:16





                            Actually I've checked it. If You are working on Android emulator - check Your app on physical device. New one emulators somehow doesn't show up notifications.

                            – deadfish
                            Mar 19 '18 at 13:16













                            No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                            – M.Noman
                            Mar 22 '18 at 17:38







                            No, Actually this was actually a bug in firebase version 11.8.0, And now it is fixed in newer version 12.0.0. For reference you can see the official release notes: firebase.google.com/support/release-notes/android

                            – M.Noman
                            Mar 22 '18 at 17:38






                            1




                            1





                            Thanks, it's good to know.

                            – deadfish
                            Mar 23 '18 at 12:35





                            Thanks, it's good to know.

                            – deadfish
                            Mar 23 '18 at 12:35











                            1














                            Here's how you do it



                            private fun sendNotification() {
                            val notificationId = 100
                            val chanelid = "chanelid"
                            val intent = Intent(this, MainActivity::class.java)
                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
                            val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // you must create a notification channel for API 26 and Above
                            val name = "my channel"
                            val description = "channel description"
                            val importance = NotificationManager.IMPORTANCE_DEFAULT
                            val channel = NotificationChannel(chanelid, name, importance);
                            channel.setDescription(description);
                            // Register the channel with the system; you can't change the importance
                            // or other notification behaviors after this
                            val notificationManager = getSystemService(NotificationManager::class.java)
                            notificationManager.createNotificationChannel(channel)
                            }

                            val mBuilder = NotificationCompat.Builder(this, chanelid)
                            .setSmallIcon(R.drawable.ic_notification)
                            .setContentTitle("Want to Open My App?")
                            .setContentText("Open my app and see good things")
                            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                            .setContentIntent(pendingIntent)
                            .setAutoCancel(true) // cancel the notification when clicked
                            .addAction(R.drawable.ic_check, "YES", pendingIntent) //add a btn to the Notification with a corresponding intent

                            val notificationManager = NotificationManagerCompat.from(this);
                            notificationManager.notify(notificationId, mBuilder.build());
                            }


                            Read full tutorial at => https://developer.android.com/training/notify-user/build-notification






                            share|improve this answer






























                              1














                              Here's how you do it



                              private fun sendNotification() {
                              val notificationId = 100
                              val chanelid = "chanelid"
                              val intent = Intent(this, MainActivity::class.java)
                              intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
                              val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
                              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // you must create a notification channel for API 26 and Above
                              val name = "my channel"
                              val description = "channel description"
                              val importance = NotificationManager.IMPORTANCE_DEFAULT
                              val channel = NotificationChannel(chanelid, name, importance);
                              channel.setDescription(description);
                              // Register the channel with the system; you can't change the importance
                              // or other notification behaviors after this
                              val notificationManager = getSystemService(NotificationManager::class.java)
                              notificationManager.createNotificationChannel(channel)
                              }

                              val mBuilder = NotificationCompat.Builder(this, chanelid)
                              .setSmallIcon(R.drawable.ic_notification)
                              .setContentTitle("Want to Open My App?")
                              .setContentText("Open my app and see good things")
                              .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                              .setContentIntent(pendingIntent)
                              .setAutoCancel(true) // cancel the notification when clicked
                              .addAction(R.drawable.ic_check, "YES", pendingIntent) //add a btn to the Notification with a corresponding intent

                              val notificationManager = NotificationManagerCompat.from(this);
                              notificationManager.notify(notificationId, mBuilder.build());
                              }


                              Read full tutorial at => https://developer.android.com/training/notify-user/build-notification






                              share|improve this answer




























                                1












                                1








                                1







                                Here's how you do it



                                private fun sendNotification() {
                                val notificationId = 100
                                val chanelid = "chanelid"
                                val intent = Intent(this, MainActivity::class.java)
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
                                val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // you must create a notification channel for API 26 and Above
                                val name = "my channel"
                                val description = "channel description"
                                val importance = NotificationManager.IMPORTANCE_DEFAULT
                                val channel = NotificationChannel(chanelid, name, importance);
                                channel.setDescription(description);
                                // Register the channel with the system; you can't change the importance
                                // or other notification behaviors after this
                                val notificationManager = getSystemService(NotificationManager::class.java)
                                notificationManager.createNotificationChannel(channel)
                                }

                                val mBuilder = NotificationCompat.Builder(this, chanelid)
                                .setSmallIcon(R.drawable.ic_notification)
                                .setContentTitle("Want to Open My App?")
                                .setContentText("Open my app and see good things")
                                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                                .setContentIntent(pendingIntent)
                                .setAutoCancel(true) // cancel the notification when clicked
                                .addAction(R.drawable.ic_check, "YES", pendingIntent) //add a btn to the Notification with a corresponding intent

                                val notificationManager = NotificationManagerCompat.from(this);
                                notificationManager.notify(notificationId, mBuilder.build());
                                }


                                Read full tutorial at => https://developer.android.com/training/notify-user/build-notification






                                share|improve this answer















                                Here's how you do it



                                private fun sendNotification() {
                                val notificationId = 100
                                val chanelid = "chanelid"
                                val intent = Intent(this, MainActivity::class.java)
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
                                val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // you must create a notification channel for API 26 and Above
                                val name = "my channel"
                                val description = "channel description"
                                val importance = NotificationManager.IMPORTANCE_DEFAULT
                                val channel = NotificationChannel(chanelid, name, importance);
                                channel.setDescription(description);
                                // Register the channel with the system; you can't change the importance
                                // or other notification behaviors after this
                                val notificationManager = getSystemService(NotificationManager::class.java)
                                notificationManager.createNotificationChannel(channel)
                                }

                                val mBuilder = NotificationCompat.Builder(this, chanelid)
                                .setSmallIcon(R.drawable.ic_notification)
                                .setContentTitle("Want to Open My App?")
                                .setContentText("Open my app and see good things")
                                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                                .setContentIntent(pendingIntent)
                                .setAutoCancel(true) // cancel the notification when clicked
                                .addAction(R.drawable.ic_check, "YES", pendingIntent) //add a btn to the Notification with a corresponding intent

                                val notificationManager = NotificationManagerCompat.from(this);
                                notificationManager.notify(notificationId, mBuilder.build());
                                }


                                Read full tutorial at => https://developer.android.com/training/notify-user/build-notification







                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited Aug 21 '18 at 23:31

























                                answered Aug 21 '18 at 8:38









                                Micklo_NerdMicklo_Nerd

                                370312




                                370312























                                    0














                                    For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.



                                    const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

                                    // create notification channel
                                    val notificationChannel = NotificationChannel(CHANNEL_ID,
                                    NOTIFICATION_NAME, NotificationManager.IMPORTANCE_HIGH)

                                    // building notification
                                    NotificationCompat.Builder(context)
                                    .setSmallIcon(android.R.drawable.ic_input_add)
                                    .setContentTitle("Title")
                                    .setContentText("Subtitle")
                                    .setPriority(NotificationCompat.PRIORITY_MAX)
                                    .setChannelId(CHANNEL_ID)





                                    share|improve this answer




























                                      0














                                      For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.



                                      const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

                                      // create notification channel
                                      val notificationChannel = NotificationChannel(CHANNEL_ID,
                                      NOTIFICATION_NAME, NotificationManager.IMPORTANCE_HIGH)

                                      // building notification
                                      NotificationCompat.Builder(context)
                                      .setSmallIcon(android.R.drawable.ic_input_add)
                                      .setContentTitle("Title")
                                      .setContentText("Subtitle")
                                      .setPriority(NotificationCompat.PRIORITY_MAX)
                                      .setChannelId(CHANNEL_ID)





                                      share|improve this answer


























                                        0












                                        0








                                        0







                                        For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.



                                        const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

                                        // create notification channel
                                        val notificationChannel = NotificationChannel(CHANNEL_ID,
                                        NOTIFICATION_NAME, NotificationManager.IMPORTANCE_HIGH)

                                        // building notification
                                        NotificationCompat.Builder(context)
                                        .setSmallIcon(android.R.drawable.ic_input_add)
                                        .setContentTitle("Title")
                                        .setContentText("Subtitle")
                                        .setPriority(NotificationCompat.PRIORITY_MAX)
                                        .setChannelId(CHANNEL_ID)





                                        share|improve this answer













                                        For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.



                                        const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

                                        // create notification channel
                                        val notificationChannel = NotificationChannel(CHANNEL_ID,
                                        NOTIFICATION_NAME, NotificationManager.IMPORTANCE_HIGH)

                                        // building notification
                                        NotificationCompat.Builder(context)
                                        .setSmallIcon(android.R.drawable.ic_input_add)
                                        .setContentTitle("Title")
                                        .setContentText("Subtitle")
                                        .setPriority(NotificationCompat.PRIORITY_MAX)
                                        .setChannelId(CHANNEL_ID)






                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered Jun 18 '18 at 13:54









                                        JulesJules

                                        29049




                                        29049























                                            0














                                            private void addNotification() {
                                            NotificationCompat.Builder builder =
                                            new NotificationCompat.Builder(this)
                                            .setSmallIcon(R.drawable.ic_launcher_background)
                                            .setContentTitle("Notifications Example")
                                            .setContentText("This is a test notification");
                                            Intent notificationIntent = new Intent(this, MainActivity.class);
                                            PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                                            PendingIntent.FLAG_UPDATE_CURRENT);
                                            builder.setContentIntent(contentIntent);
                                            // Add as notification
                                            NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                                            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
                                            {
                                            NotificationChannel nChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH);
                                            nChannel.enableLights(true);
                                            assert manager != null;
                                            builder.setChannelId(NOTIFICATION_CHANNEL_ID);
                                            manager.createNotificationChannel(nChannel);
                                            }
                                            assert manager != null;
                                            manager.notify(0, builder.build());
                                            }





                                            share|improve this answer




























                                              0














                                              private void addNotification() {
                                              NotificationCompat.Builder builder =
                                              new NotificationCompat.Builder(this)
                                              .setSmallIcon(R.drawable.ic_launcher_background)
                                              .setContentTitle("Notifications Example")
                                              .setContentText("This is a test notification");
                                              Intent notificationIntent = new Intent(this, MainActivity.class);
                                              PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                                              PendingIntent.FLAG_UPDATE_CURRENT);
                                              builder.setContentIntent(contentIntent);
                                              // Add as notification
                                              NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                                              if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
                                              {
                                              NotificationChannel nChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH);
                                              nChannel.enableLights(true);
                                              assert manager != null;
                                              builder.setChannelId(NOTIFICATION_CHANNEL_ID);
                                              manager.createNotificationChannel(nChannel);
                                              }
                                              assert manager != null;
                                              manager.notify(0, builder.build());
                                              }





                                              share|improve this answer


























                                                0












                                                0








                                                0







                                                private void addNotification() {
                                                NotificationCompat.Builder builder =
                                                new NotificationCompat.Builder(this)
                                                .setSmallIcon(R.drawable.ic_launcher_background)
                                                .setContentTitle("Notifications Example")
                                                .setContentText("This is a test notification");
                                                Intent notificationIntent = new Intent(this, MainActivity.class);
                                                PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                                                PendingIntent.FLAG_UPDATE_CURRENT);
                                                builder.setContentIntent(contentIntent);
                                                // Add as notification
                                                NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                                                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
                                                {
                                                NotificationChannel nChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH);
                                                nChannel.enableLights(true);
                                                assert manager != null;
                                                builder.setChannelId(NOTIFICATION_CHANNEL_ID);
                                                manager.createNotificationChannel(nChannel);
                                                }
                                                assert manager != null;
                                                manager.notify(0, builder.build());
                                                }





                                                share|improve this answer













                                                private void addNotification() {
                                                NotificationCompat.Builder builder =
                                                new NotificationCompat.Builder(this)
                                                .setSmallIcon(R.drawable.ic_launcher_background)
                                                .setContentTitle("Notifications Example")
                                                .setContentText("This is a test notification");
                                                Intent notificationIntent = new Intent(this, MainActivity.class);
                                                PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                                                PendingIntent.FLAG_UPDATE_CURRENT);
                                                builder.setContentIntent(contentIntent);
                                                // Add as notification
                                                NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                                                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
                                                {
                                                NotificationChannel nChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH);
                                                nChannel.enableLights(true);
                                                assert manager != null;
                                                builder.setChannelId(NOTIFICATION_CHANNEL_ID);
                                                manager.createNotificationChannel(nChannel);
                                                }
                                                assert manager != null;
                                                manager.notify(0, builder.build());
                                                }






                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered Nov 27 '18 at 12:14









                                                Brijesh padsalaBrijesh padsala

                                                1




                                                1























                                                    0














                                                    In android Oreo,notification app is done by using channels and NotificationHelper class.It should have a channel id and channel name.



                                                    First u have to create a NotificationHelper Class



                                                    public class NotificationHelper extends ContextWrapper {



                                                    private static final String EDMT_CHANNEL_ID="com.example.safna.notifier1.EDMTDEV";
                                                    private static final String EDMT_CHANNEL_NAME="EDMTDEV Channel";
                                                    private NotificationManager manager;

                                                    public NotificationHelper(Context base)
                                                    {
                                                    super(base);
                                                    createChannels();
                                                    }
                                                    private void createChannels()
                                                    {
                                                    NotificationChannel edmtChannel=new NotificationChannel(EDMT_CHANNEL_ID,EDMT_CHANNEL_NAME,NotificationManager.IMPORTANCE_DEFAULT);
                                                    edmtChannel.enableLights(true);
                                                    edmtChannel.enableVibration(true);
                                                    edmtChannel.setLightColor(Color.GREEN);
                                                    edmtChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

                                                    getManager().createNotificationChannel(edmtChannel);

                                                    }
                                                    public NotificationManager getManager()
                                                    {
                                                    if (manager==null)
                                                    manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                                                    return manager;

                                                    }
                                                    public Notification.Builder getEDMTChannelNotification(String title,String body)
                                                    {
                                                    return new Notification.Builder(getApplicationContext(),EDMT_CHANNEL_ID)
                                                    .setContentText(body)
                                                    .setContentTitle(title)
                                                    .setSmallIcon(R.mipmap.ic_launcher_round)
                                                    .setAutoCancel(true);
                                                    }


                                                    }



                                                    Create a button in activity xml file,then In the main activity



                                                    protected void onCreate(Bundle savedInstanceState) {



                                                        super.onCreate(savedInstanceState);
                                                    setContentView(R.layout.activity_main);

                                                    helper=new NotificationHelper(this);

                                                    btnSend=(Button)findViewById(R.id.btnSend);

                                                    btnSend.setOnClickListener(new View.OnClickListener() {
                                                    @Override
                                                    public void onClick(View v) {
                                                    String title="Title";
                                                    String content="Content";
                                                    Notification.Builder builder=helper.getEDMTChannelNotification(title,content);
                                                    helper.getManager().notify(new Random().nextInt(),builder.build());
                                                    }
                                                    });

                                                    }


                                                    Then run ur project






                                                    share|improve this answer




























                                                      0














                                                      In android Oreo,notification app is done by using channels and NotificationHelper class.It should have a channel id and channel name.



                                                      First u have to create a NotificationHelper Class



                                                      public class NotificationHelper extends ContextWrapper {



                                                      private static final String EDMT_CHANNEL_ID="com.example.safna.notifier1.EDMTDEV";
                                                      private static final String EDMT_CHANNEL_NAME="EDMTDEV Channel";
                                                      private NotificationManager manager;

                                                      public NotificationHelper(Context base)
                                                      {
                                                      super(base);
                                                      createChannels();
                                                      }
                                                      private void createChannels()
                                                      {
                                                      NotificationChannel edmtChannel=new NotificationChannel(EDMT_CHANNEL_ID,EDMT_CHANNEL_NAME,NotificationManager.IMPORTANCE_DEFAULT);
                                                      edmtChannel.enableLights(true);
                                                      edmtChannel.enableVibration(true);
                                                      edmtChannel.setLightColor(Color.GREEN);
                                                      edmtChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

                                                      getManager().createNotificationChannel(edmtChannel);

                                                      }
                                                      public NotificationManager getManager()
                                                      {
                                                      if (manager==null)
                                                      manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                                                      return manager;

                                                      }
                                                      public Notification.Builder getEDMTChannelNotification(String title,String body)
                                                      {
                                                      return new Notification.Builder(getApplicationContext(),EDMT_CHANNEL_ID)
                                                      .setContentText(body)
                                                      .setContentTitle(title)
                                                      .setSmallIcon(R.mipmap.ic_launcher_round)
                                                      .setAutoCancel(true);
                                                      }


                                                      }



                                                      Create a button in activity xml file,then In the main activity



                                                      protected void onCreate(Bundle savedInstanceState) {



                                                          super.onCreate(savedInstanceState);
                                                      setContentView(R.layout.activity_main);

                                                      helper=new NotificationHelper(this);

                                                      btnSend=(Button)findViewById(R.id.btnSend);

                                                      btnSend.setOnClickListener(new View.OnClickListener() {
                                                      @Override
                                                      public void onClick(View v) {
                                                      String title="Title";
                                                      String content="Content";
                                                      Notification.Builder builder=helper.getEDMTChannelNotification(title,content);
                                                      helper.getManager().notify(new Random().nextInt(),builder.build());
                                                      }
                                                      });

                                                      }


                                                      Then run ur project






                                                      share|improve this answer


























                                                        0












                                                        0








                                                        0







                                                        In android Oreo,notification app is done by using channels and NotificationHelper class.It should have a channel id and channel name.



                                                        First u have to create a NotificationHelper Class



                                                        public class NotificationHelper extends ContextWrapper {



                                                        private static final String EDMT_CHANNEL_ID="com.example.safna.notifier1.EDMTDEV";
                                                        private static final String EDMT_CHANNEL_NAME="EDMTDEV Channel";
                                                        private NotificationManager manager;

                                                        public NotificationHelper(Context base)
                                                        {
                                                        super(base);
                                                        createChannels();
                                                        }
                                                        private void createChannels()
                                                        {
                                                        NotificationChannel edmtChannel=new NotificationChannel(EDMT_CHANNEL_ID,EDMT_CHANNEL_NAME,NotificationManager.IMPORTANCE_DEFAULT);
                                                        edmtChannel.enableLights(true);
                                                        edmtChannel.enableVibration(true);
                                                        edmtChannel.setLightColor(Color.GREEN);
                                                        edmtChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

                                                        getManager().createNotificationChannel(edmtChannel);

                                                        }
                                                        public NotificationManager getManager()
                                                        {
                                                        if (manager==null)
                                                        manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                                                        return manager;

                                                        }
                                                        public Notification.Builder getEDMTChannelNotification(String title,String body)
                                                        {
                                                        return new Notification.Builder(getApplicationContext(),EDMT_CHANNEL_ID)
                                                        .setContentText(body)
                                                        .setContentTitle(title)
                                                        .setSmallIcon(R.mipmap.ic_launcher_round)
                                                        .setAutoCancel(true);
                                                        }


                                                        }



                                                        Create a button in activity xml file,then In the main activity



                                                        protected void onCreate(Bundle savedInstanceState) {



                                                            super.onCreate(savedInstanceState);
                                                        setContentView(R.layout.activity_main);

                                                        helper=new NotificationHelper(this);

                                                        btnSend=(Button)findViewById(R.id.btnSend);

                                                        btnSend.setOnClickListener(new View.OnClickListener() {
                                                        @Override
                                                        public void onClick(View v) {
                                                        String title="Title";
                                                        String content="Content";
                                                        Notification.Builder builder=helper.getEDMTChannelNotification(title,content);
                                                        helper.getManager().notify(new Random().nextInt(),builder.build());
                                                        }
                                                        });

                                                        }


                                                        Then run ur project






                                                        share|improve this answer













                                                        In android Oreo,notification app is done by using channels and NotificationHelper class.It should have a channel id and channel name.



                                                        First u have to create a NotificationHelper Class



                                                        public class NotificationHelper extends ContextWrapper {



                                                        private static final String EDMT_CHANNEL_ID="com.example.safna.notifier1.EDMTDEV";
                                                        private static final String EDMT_CHANNEL_NAME="EDMTDEV Channel";
                                                        private NotificationManager manager;

                                                        public NotificationHelper(Context base)
                                                        {
                                                        super(base);
                                                        createChannels();
                                                        }
                                                        private void createChannels()
                                                        {
                                                        NotificationChannel edmtChannel=new NotificationChannel(EDMT_CHANNEL_ID,EDMT_CHANNEL_NAME,NotificationManager.IMPORTANCE_DEFAULT);
                                                        edmtChannel.enableLights(true);
                                                        edmtChannel.enableVibration(true);
                                                        edmtChannel.setLightColor(Color.GREEN);
                                                        edmtChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

                                                        getManager().createNotificationChannel(edmtChannel);

                                                        }
                                                        public NotificationManager getManager()
                                                        {
                                                        if (manager==null)
                                                        manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                                                        return manager;

                                                        }
                                                        public Notification.Builder getEDMTChannelNotification(String title,String body)
                                                        {
                                                        return new Notification.Builder(getApplicationContext(),EDMT_CHANNEL_ID)
                                                        .setContentText(body)
                                                        .setContentTitle(title)
                                                        .setSmallIcon(R.mipmap.ic_launcher_round)
                                                        .setAutoCancel(true);
                                                        }


                                                        }



                                                        Create a button in activity xml file,then In the main activity



                                                        protected void onCreate(Bundle savedInstanceState) {



                                                            super.onCreate(savedInstanceState);
                                                        setContentView(R.layout.activity_main);

                                                        helper=new NotificationHelper(this);

                                                        btnSend=(Button)findViewById(R.id.btnSend);

                                                        btnSend.setOnClickListener(new View.OnClickListener() {
                                                        @Override
                                                        public void onClick(View v) {
                                                        String title="Title";
                                                        String content="Content";
                                                        Notification.Builder builder=helper.getEDMTChannelNotification(title,content);
                                                        helper.getManager().notify(new Random().nextInt(),builder.build());
                                                        }
                                                        });

                                                        }


                                                        Then run ur project







                                                        share|improve this answer












                                                        share|improve this answer



                                                        share|improve this answer










                                                        answered Dec 12 '18 at 6:38









                                                        safna salamsafna salam

                                                        56




                                                        56























                                                            0














                                                            Following method will show Notification, having big text and freeze enabled( Notification will not get removed even after user swipes ). We need NotificationManager service



                                                            public static void showNotificationOngoing(Context context,String title) {
                                                            NotificationManager notificationManager =
                                                            (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

                                                            PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                                                            new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

                                                            Notification.Builder notificationBuilder = new Notification.Builder(context)
                                                            .setContentTitle(title + DateFormat.getDateTimeInstance().format(new Date()) + ":" + accuracy)
                                                            .setContentText(addressFragments.toString())
                                                            .setSmallIcon(R.mipmap.ic_launcher)
                                                            .setContentIntent(contentIntent)
                                                            .setOngoing(true)
                                                            .setStyle(new Notification.BigTextStyle().bigText(addressFragments.toString()))
                                                            .setAutoCancel(true);
                                                            notificationManager.notify(3, notificationBuilder.build());
                                                            }


                                                            Method to Remove Notifications



                                                            public static void removeNotification(Context context){
                                                            NotificationManager notificationManager =
                                                            (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
                                                            notificationManager.cancelAll();
                                                            }


                                                            Source Link






                                                            share|improve this answer




























                                                              0














                                                              Following method will show Notification, having big text and freeze enabled( Notification will not get removed even after user swipes ). We need NotificationManager service



                                                              public static void showNotificationOngoing(Context context,String title) {
                                                              NotificationManager notificationManager =
                                                              (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

                                                              PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                                                              new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

                                                              Notification.Builder notificationBuilder = new Notification.Builder(context)
                                                              .setContentTitle(title + DateFormat.getDateTimeInstance().format(new Date()) + ":" + accuracy)
                                                              .setContentText(addressFragments.toString())
                                                              .setSmallIcon(R.mipmap.ic_launcher)
                                                              .setContentIntent(contentIntent)
                                                              .setOngoing(true)
                                                              .setStyle(new Notification.BigTextStyle().bigText(addressFragments.toString()))
                                                              .setAutoCancel(true);
                                                              notificationManager.notify(3, notificationBuilder.build());
                                                              }


                                                              Method to Remove Notifications



                                                              public static void removeNotification(Context context){
                                                              NotificationManager notificationManager =
                                                              (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
                                                              notificationManager.cancelAll();
                                                              }


                                                              Source Link






                                                              share|improve this answer


























                                                                0












                                                                0








                                                                0







                                                                Following method will show Notification, having big text and freeze enabled( Notification will not get removed even after user swipes ). We need NotificationManager service



                                                                public static void showNotificationOngoing(Context context,String title) {
                                                                NotificationManager notificationManager =
                                                                (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

                                                                PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                                                                new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

                                                                Notification.Builder notificationBuilder = new Notification.Builder(context)
                                                                .setContentTitle(title + DateFormat.getDateTimeInstance().format(new Date()) + ":" + accuracy)
                                                                .setContentText(addressFragments.toString())
                                                                .setSmallIcon(R.mipmap.ic_launcher)
                                                                .setContentIntent(contentIntent)
                                                                .setOngoing(true)
                                                                .setStyle(new Notification.BigTextStyle().bigText(addressFragments.toString()))
                                                                .setAutoCancel(true);
                                                                notificationManager.notify(3, notificationBuilder.build());
                                                                }


                                                                Method to Remove Notifications



                                                                public static void removeNotification(Context context){
                                                                NotificationManager notificationManager =
                                                                (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
                                                                notificationManager.cancelAll();
                                                                }


                                                                Source Link






                                                                share|improve this answer













                                                                Following method will show Notification, having big text and freeze enabled( Notification will not get removed even after user swipes ). We need NotificationManager service



                                                                public static void showNotificationOngoing(Context context,String title) {
                                                                NotificationManager notificationManager =
                                                                (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

                                                                PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                                                                new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

                                                                Notification.Builder notificationBuilder = new Notification.Builder(context)
                                                                .setContentTitle(title + DateFormat.getDateTimeInstance().format(new Date()) + ":" + accuracy)
                                                                .setContentText(addressFragments.toString())
                                                                .setSmallIcon(R.mipmap.ic_launcher)
                                                                .setContentIntent(contentIntent)
                                                                .setOngoing(true)
                                                                .setStyle(new Notification.BigTextStyle().bigText(addressFragments.toString()))
                                                                .setAutoCancel(true);
                                                                notificationManager.notify(3, notificationBuilder.build());
                                                                }


                                                                Method to Remove Notifications



                                                                public static void removeNotification(Context context){
                                                                NotificationManager notificationManager =
                                                                (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
                                                                notificationManager.cancelAll();
                                                                }


                                                                Source Link







                                                                share|improve this answer












                                                                share|improve this answer



                                                                share|improve this answer










                                                                answered Dec 20 '18 at 9:37









                                                                Code SpyCode Spy

                                                                3,34922323




                                                                3,34922323























                                                                    0














                                                                    NotificationCompat.Builder(Context context)


                                                                    already deprecated for version greater than or equal android Oreo. You can change implementation into using



                                                                    NotificationCompat.Builder(Context context, String channelId)





                                                                    share|improve this answer




























                                                                      0














                                                                      NotificationCompat.Builder(Context context)


                                                                      already deprecated for version greater than or equal android Oreo. You can change implementation into using



                                                                      NotificationCompat.Builder(Context context, String channelId)





                                                                      share|improve this answer


























                                                                        0












                                                                        0








                                                                        0







                                                                        NotificationCompat.Builder(Context context)


                                                                        already deprecated for version greater than or equal android Oreo. You can change implementation into using



                                                                        NotificationCompat.Builder(Context context, String channelId)





                                                                        share|improve this answer













                                                                        NotificationCompat.Builder(Context context)


                                                                        already deprecated for version greater than or equal android Oreo. You can change implementation into using



                                                                        NotificationCompat.Builder(Context context, String channelId)






                                                                        share|improve this answer












                                                                        share|improve this answer



                                                                        share|improve this answer










                                                                        answered Jan 15 at 6:40









                                                                        latifalbrlatifalbr

                                                                        638




                                                                        638























                                                                            0














                                                                            The Notification Channel features is added from Api level 26 (in oreo). the below code is working fine on my side, hope it will help you



                                                                             private void sendNotification(Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {       
                                                                            try {

                                                                            PendingIntent pendingIntent = PendingIntent.getActivity(ctx, notificationNumber, intent,
                                                                            PendingIntent.FLAG_UPDATE_CURRENT);
                                                                            Uri url = null;
                                                                            NotificationCompat.Builder notificationBuilder = null;
                                                                            try {
                                                                            if (Build.VERSION.SDK_INT >= 26) {

                                                                            try{
                                                                            NotificationManager notificationManager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                                                            notificationManager.deleteNotificationChannel(CHANNEL_ID_1);
                                                                            notificationManager.deleteNotificationChannel(CHANNEL_ID_2);

                                                                            if(!intent.getStringExtra("type").equalsIgnoreCase(""+TYPE_RIDE_REQUEST)){
                                                                            NotificationChannel breaking = new NotificationChannel(CHANNEL_ID_1, CHANNEL_ID_1_NAME, NotificationManager.IMPORTANCE_HIGH);
                                                                            breaking.setShowBadge(false);
                                                                            breaking.enableLights(true);
                                                                            breaking.enableVibration(true);
                                                                            breaking.setLightColor(Color.WHITE);
                                                                            breaking.setVibrationPattern(new long{100, 200, 100, 200, 100, 200, 100});
                                                                            breaking.setSound(url,new AudioAttributes.Builder().build());

                                                                            notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_1)
                                                                            .setSmallIcon(R.mipmap.ic_launcher);
                                                                            notificationManager.createNotificationChannel(breaking);

                                                                            }else{

                                                                            NotificationChannel politics = new NotificationChannel(CHANNEL_ID_2,CHANNEL_ID_2_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                                                                            politics.setShowBadge(false);
                                                                            politics.enableLights(true);
                                                                            politics.enableVibration(true);
                                                                            politics.setLightColor(Color.BLUE);
                                                                            politics.setVibrationPattern(new long{100, 200, 100, 200, 100});
                                                                            politics.setSound(url,new AudioAttributes.Builder().build());

                                                                            notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_2)
                                                                            .setSmallIcon(R.mipmap.ic_launcher);
                                                                            notificationManager.createNotificationChannel(politics);
                                                                            }
                                                                            }catch (Exception e){
                                                                            e.printStackTrace();
                                                                            }

                                                                            } else {
                                                                            notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                            .setSmallIcon(R.mipmap.ic_launcher);
                                                                            }
                                                                            } catch (Exception e) {
                                                                            e.printStackTrace();
                                                                            }

                                                                            if (notificationBuilder == null) {
                                                                            notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                            .setSmallIcon(R.mipmap.ic_launcher);
                                                                            }


                                                                            notificationBuilder.setContentTitle(title);
                                                                            notificationBuilder.setSubText(subtext);
                                                                            notificationBuilder.setAutoCancel(true);

                                                                            notificationBuilder.setContentIntent(pendingIntent);
                                                                            notificationBuilder.setNumber(notificationNumber);
                                                                            NotificationManager notificationManager =
                                                                            (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

                                                                            notificationManager.notify(notificationNumber, notificationBuilder.build());

                                                                            } catch (Exception e) {
                                                                            e.printStackTrace();
                                                                            }

                                                                            }





                                                                            share|improve this answer




























                                                                              0














                                                                              The Notification Channel features is added from Api level 26 (in oreo). the below code is working fine on my side, hope it will help you



                                                                               private void sendNotification(Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {       
                                                                              try {

                                                                              PendingIntent pendingIntent = PendingIntent.getActivity(ctx, notificationNumber, intent,
                                                                              PendingIntent.FLAG_UPDATE_CURRENT);
                                                                              Uri url = null;
                                                                              NotificationCompat.Builder notificationBuilder = null;
                                                                              try {
                                                                              if (Build.VERSION.SDK_INT >= 26) {

                                                                              try{
                                                                              NotificationManager notificationManager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                                                              notificationManager.deleteNotificationChannel(CHANNEL_ID_1);
                                                                              notificationManager.deleteNotificationChannel(CHANNEL_ID_2);

                                                                              if(!intent.getStringExtra("type").equalsIgnoreCase(""+TYPE_RIDE_REQUEST)){
                                                                              NotificationChannel breaking = new NotificationChannel(CHANNEL_ID_1, CHANNEL_ID_1_NAME, NotificationManager.IMPORTANCE_HIGH);
                                                                              breaking.setShowBadge(false);
                                                                              breaking.enableLights(true);
                                                                              breaking.enableVibration(true);
                                                                              breaking.setLightColor(Color.WHITE);
                                                                              breaking.setVibrationPattern(new long{100, 200, 100, 200, 100, 200, 100});
                                                                              breaking.setSound(url,new AudioAttributes.Builder().build());

                                                                              notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_1)
                                                                              .setSmallIcon(R.mipmap.ic_launcher);
                                                                              notificationManager.createNotificationChannel(breaking);

                                                                              }else{

                                                                              NotificationChannel politics = new NotificationChannel(CHANNEL_ID_2,CHANNEL_ID_2_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                                                                              politics.setShowBadge(false);
                                                                              politics.enableLights(true);
                                                                              politics.enableVibration(true);
                                                                              politics.setLightColor(Color.BLUE);
                                                                              politics.setVibrationPattern(new long{100, 200, 100, 200, 100});
                                                                              politics.setSound(url,new AudioAttributes.Builder().build());

                                                                              notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_2)
                                                                              .setSmallIcon(R.mipmap.ic_launcher);
                                                                              notificationManager.createNotificationChannel(politics);
                                                                              }
                                                                              }catch (Exception e){
                                                                              e.printStackTrace();
                                                                              }

                                                                              } else {
                                                                              notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                              .setSmallIcon(R.mipmap.ic_launcher);
                                                                              }
                                                                              } catch (Exception e) {
                                                                              e.printStackTrace();
                                                                              }

                                                                              if (notificationBuilder == null) {
                                                                              notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                              .setSmallIcon(R.mipmap.ic_launcher);
                                                                              }


                                                                              notificationBuilder.setContentTitle(title);
                                                                              notificationBuilder.setSubText(subtext);
                                                                              notificationBuilder.setAutoCancel(true);

                                                                              notificationBuilder.setContentIntent(pendingIntent);
                                                                              notificationBuilder.setNumber(notificationNumber);
                                                                              NotificationManager notificationManager =
                                                                              (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

                                                                              notificationManager.notify(notificationNumber, notificationBuilder.build());

                                                                              } catch (Exception e) {
                                                                              e.printStackTrace();
                                                                              }

                                                                              }





                                                                              share|improve this answer


























                                                                                0












                                                                                0








                                                                                0







                                                                                The Notification Channel features is added from Api level 26 (in oreo). the below code is working fine on my side, hope it will help you



                                                                                 private void sendNotification(Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {       
                                                                                try {

                                                                                PendingIntent pendingIntent = PendingIntent.getActivity(ctx, notificationNumber, intent,
                                                                                PendingIntent.FLAG_UPDATE_CURRENT);
                                                                                Uri url = null;
                                                                                NotificationCompat.Builder notificationBuilder = null;
                                                                                try {
                                                                                if (Build.VERSION.SDK_INT >= 26) {

                                                                                try{
                                                                                NotificationManager notificationManager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                                                                notificationManager.deleteNotificationChannel(CHANNEL_ID_1);
                                                                                notificationManager.deleteNotificationChannel(CHANNEL_ID_2);

                                                                                if(!intent.getStringExtra("type").equalsIgnoreCase(""+TYPE_RIDE_REQUEST)){
                                                                                NotificationChannel breaking = new NotificationChannel(CHANNEL_ID_1, CHANNEL_ID_1_NAME, NotificationManager.IMPORTANCE_HIGH);
                                                                                breaking.setShowBadge(false);
                                                                                breaking.enableLights(true);
                                                                                breaking.enableVibration(true);
                                                                                breaking.setLightColor(Color.WHITE);
                                                                                breaking.setVibrationPattern(new long{100, 200, 100, 200, 100, 200, 100});
                                                                                breaking.setSound(url,new AudioAttributes.Builder().build());

                                                                                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_1)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                notificationManager.createNotificationChannel(breaking);

                                                                                }else{

                                                                                NotificationChannel politics = new NotificationChannel(CHANNEL_ID_2,CHANNEL_ID_2_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                                                                                politics.setShowBadge(false);
                                                                                politics.enableLights(true);
                                                                                politics.enableVibration(true);
                                                                                politics.setLightColor(Color.BLUE);
                                                                                politics.setVibrationPattern(new long{100, 200, 100, 200, 100});
                                                                                politics.setSound(url,new AudioAttributes.Builder().build());

                                                                                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_2)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                notificationManager.createNotificationChannel(politics);
                                                                                }
                                                                                }catch (Exception e){
                                                                                e.printStackTrace();
                                                                                }

                                                                                } else {
                                                                                notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                }
                                                                                } catch (Exception e) {
                                                                                e.printStackTrace();
                                                                                }

                                                                                if (notificationBuilder == null) {
                                                                                notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                }


                                                                                notificationBuilder.setContentTitle(title);
                                                                                notificationBuilder.setSubText(subtext);
                                                                                notificationBuilder.setAutoCancel(true);

                                                                                notificationBuilder.setContentIntent(pendingIntent);
                                                                                notificationBuilder.setNumber(notificationNumber);
                                                                                NotificationManager notificationManager =
                                                                                (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                notificationManager.notify(notificationNumber, notificationBuilder.build());

                                                                                } catch (Exception e) {
                                                                                e.printStackTrace();
                                                                                }

                                                                                }





                                                                                share|improve this answer













                                                                                The Notification Channel features is added from Api level 26 (in oreo). the below code is working fine on my side, hope it will help you



                                                                                 private void sendNotification(Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {       
                                                                                try {

                                                                                PendingIntent pendingIntent = PendingIntent.getActivity(ctx, notificationNumber, intent,
                                                                                PendingIntent.FLAG_UPDATE_CURRENT);
                                                                                Uri url = null;
                                                                                NotificationCompat.Builder notificationBuilder = null;
                                                                                try {
                                                                                if (Build.VERSION.SDK_INT >= 26) {

                                                                                try{
                                                                                NotificationManager notificationManager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                                                                notificationManager.deleteNotificationChannel(CHANNEL_ID_1);
                                                                                notificationManager.deleteNotificationChannel(CHANNEL_ID_2);

                                                                                if(!intent.getStringExtra("type").equalsIgnoreCase(""+TYPE_RIDE_REQUEST)){
                                                                                NotificationChannel breaking = new NotificationChannel(CHANNEL_ID_1, CHANNEL_ID_1_NAME, NotificationManager.IMPORTANCE_HIGH);
                                                                                breaking.setShowBadge(false);
                                                                                breaking.enableLights(true);
                                                                                breaking.enableVibration(true);
                                                                                breaking.setLightColor(Color.WHITE);
                                                                                breaking.setVibrationPattern(new long{100, 200, 100, 200, 100, 200, 100});
                                                                                breaking.setSound(url,new AudioAttributes.Builder().build());

                                                                                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_1)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                notificationManager.createNotificationChannel(breaking);

                                                                                }else{

                                                                                NotificationChannel politics = new NotificationChannel(CHANNEL_ID_2,CHANNEL_ID_2_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                                                                                politics.setShowBadge(false);
                                                                                politics.enableLights(true);
                                                                                politics.enableVibration(true);
                                                                                politics.setLightColor(Color.BLUE);
                                                                                politics.setVibrationPattern(new long{100, 200, 100, 200, 100});
                                                                                politics.setSound(url,new AudioAttributes.Builder().build());

                                                                                notificationBuilder = new NotificationCompat.Builder(this,CHANNEL_ID_2)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                notificationManager.createNotificationChannel(politics);
                                                                                }
                                                                                }catch (Exception e){
                                                                                e.printStackTrace();
                                                                                }

                                                                                } else {
                                                                                notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                }
                                                                                } catch (Exception e) {
                                                                                e.printStackTrace();
                                                                                }

                                                                                if (notificationBuilder == null) {
                                                                                notificationBuilder = new NotificationCompat.Builder(ctx)
                                                                                .setSmallIcon(R.mipmap.ic_launcher);
                                                                                }


                                                                                notificationBuilder.setContentTitle(title);
                                                                                notificationBuilder.setSubText(subtext);
                                                                                notificationBuilder.setAutoCancel(true);

                                                                                notificationBuilder.setContentIntent(pendingIntent);
                                                                                notificationBuilder.setNumber(notificationNumber);
                                                                                NotificationManager notificationManager =
                                                                                (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                notificationManager.notify(notificationNumber, notificationBuilder.build());

                                                                                } catch (Exception e) {
                                                                                e.printStackTrace();
                                                                                }

                                                                                }






                                                                                share|improve this answer












                                                                                share|improve this answer



                                                                                share|improve this answer










                                                                                answered Feb 14 at 15:17









                                                                                user4042384user4042384

                                                                                493




                                                                                493























                                                                                    -1














                                                                                        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "CHANNEL_ID")
                                                                                    ........

                                                                                    NotificationManager mNotificationManager =
                                                                                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                                                                    CharSequence name = "Hello";// The user-visible name of the channel.
                                                                                    int importance = NotificationManager.IMPORTANCE_HIGH;
                                                                                    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                                                                                    mNotificationManager.createNotificationChannel(mChannel);
                                                                                    }
                                                                                    mNotificationManager.notify(notificationId, notificationBuilder.build());





                                                                                    share|improve this answer






























                                                                                      -1














                                                                                          NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "CHANNEL_ID")
                                                                                      ........

                                                                                      NotificationManager mNotificationManager =
                                                                                      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                                                                      CharSequence name = "Hello";// The user-visible name of the channel.
                                                                                      int importance = NotificationManager.IMPORTANCE_HIGH;
                                                                                      NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                                                                                      mNotificationManager.createNotificationChannel(mChannel);
                                                                                      }
                                                                                      mNotificationManager.notify(notificationId, notificationBuilder.build());





                                                                                      share|improve this answer




























                                                                                        -1












                                                                                        -1








                                                                                        -1







                                                                                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "CHANNEL_ID")
                                                                                        ........

                                                                                        NotificationManager mNotificationManager =
                                                                                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                                                                        CharSequence name = "Hello";// The user-visible name of the channel.
                                                                                        int importance = NotificationManager.IMPORTANCE_HIGH;
                                                                                        NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                                                                                        mNotificationManager.createNotificationChannel(mChannel);
                                                                                        }
                                                                                        mNotificationManager.notify(notificationId, notificationBuilder.build());





                                                                                        share|improve this answer















                                                                                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "CHANNEL_ID")
                                                                                        ........

                                                                                        NotificationManager mNotificationManager =
                                                                                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                                                                                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                                                                        CharSequence name = "Hello";// The user-visible name of the channel.
                                                                                        int importance = NotificationManager.IMPORTANCE_HIGH;
                                                                                        NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
                                                                                        mNotificationManager.createNotificationChannel(mChannel);
                                                                                        }
                                                                                        mNotificationManager.notify(notificationId, notificationBuilder.build());






                                                                                        share|improve this answer














                                                                                        share|improve this answer



                                                                                        share|improve this answer








                                                                                        edited Jan 26 '18 at 9:59









                                                                                        Vasily Kabunov

                                                                                        3,795113442




                                                                                        3,795113442










                                                                                        answered Nov 21 '17 at 11:16









                                                                                        Pradeep Kumar SPradeep Kumar S

                                                                                        437




                                                                                        437






























                                                                                            draft saved

                                                                                            draft discarded




















































                                                                                            Thanks for contributing an answer to Stack Overflow!


                                                                                            • Please be sure to answer the question. Provide details and share your research!

                                                                                            But avoid



                                                                                            • Asking for help, clarification, or responding to other answers.

                                                                                            • Making statements based on opinion; back them up with references or personal experience.


                                                                                            To learn more, see our tips on writing great answers.




                                                                                            draft saved


                                                                                            draft discarded














                                                                                            StackExchange.ready(
                                                                                            function () {
                                                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f43093260%2fnotification-not-showing-in-oreo%23new-answer', 'question_page');
                                                                                            }
                                                                                            );

                                                                                            Post as a guest















                                                                                            Required, but never shown





















































                                                                                            Required, but never shown














                                                                                            Required, but never shown












                                                                                            Required, but never shown







                                                                                            Required, but never shown

































                                                                                            Required, but never shown














                                                                                            Required, but never shown












                                                                                            Required, but never shown







                                                                                            Required, but never shown







                                                                                            Popular posts from this blog

                                                                                            Monofisismo

                                                                                            Angular Downloading a file using contenturl with Basic Authentication

                                                                                            Olmecas