NotificationCompat.Builder deprecated in Android ONotification.Builder(context) deprecated Android ODaily repeating notifications with deprecated N̶o̶t̶i̶f̶i̶c̶a̶t̶i̶o̶n̶C̶o̶m̶p̶a̶t̶.̶B̶u̶i̶l̶d̶e̶r̶Why it Showing deprecated API usage in Notificationcompat.BuilderOn Android 8.1 API 27 notification does not displayNotificationCompat.Builder doesn't accept 2nd argumentNotificationCompat.Builder only has deprecated constructorhow to update custom layout notification actions?Firebase Push notification not receving on some android devicesCancel (and hide) Android notification programaticallyFirebaseMessagingService Intercept notifications when app closedIs there a way to run Python on Android?How to save an Android Activity state using save instance state?Close/hide the Android Soft KeyboardWhy is the Android emulator so slow? How can we speed up the Android emulator?“Debug certificate expired” error in Eclipse Android pluginsIs there a unique Android device ID?What is 'Context' on Android?Proper use cases for Android UserManager.isUserAGoat()?Notification.Builder(context) deprecated Android OAndroid - Can't use NotificationCompat.Builder new constructor (Context, String)
Finding the nth term of sequence of 3, 10, 31, 94, 283...
Terry Pratchett book with a lawyer dragon and sheep
Modulus Operandi
How can one write good dialogue in a story without sounding wooden?
Print the last, middle and first character of your code
For a hashing function like MD5, how similar can two plaintext strings be and still generate the same hash?
Why were Er and Onan punished if they were under 20?
Cracking the Coding Interview — 1.5 One Away
How can I calculate the sum of 2 random dice out of a 3d6 pool in AnyDice?
How can a dictatorship government be beneficial to a dictator in a post-scarcity society?
How to loop for 3 times in bash script when docker push fails?
definition of "percentile"
Would dual wielding daggers be a viable choice for a covert bodyguard?
QGIS Zanzibar how to crop?
Is "I do not want you to go nowhere" a case of "DOUBLE-NEGATIVES" as claimed by Grammarly?
Are neural networks prone to catastrophic forgetting?
US Civil War story: man hanged from a bridge
Managing and organizing the massively increased number of classes after switching to SOLID?
Can a Beast Master ranger have its beast chase down and attack enemies?
Received a dinner invitation through my employer's email, is it ok to attend?
How did the hit man miss?
What is the job of the acoustic cavities inside the main combustion chamber?
Referring to different instances of the same character in time travel
What is this triple-transistor arrangement called?
NotificationCompat.Builder deprecated in Android O
Notification.Builder(context) deprecated Android ODaily repeating notifications with deprecated N̶o̶t̶i̶f̶i̶c̶a̶t̶i̶o̶n̶C̶o̶m̶p̶a̶t̶.̶B̶u̶i̶l̶d̶e̶r̶Why it Showing deprecated API usage in Notificationcompat.BuilderOn Android 8.1 API 27 notification does not displayNotificationCompat.Builder doesn't accept 2nd argumentNotificationCompat.Builder only has deprecated constructorhow to update custom layout notification actions?Firebase Push notification not receving on some android devicesCancel (and hide) Android notification programaticallyFirebaseMessagingService Intercept notifications when app closedIs there a way to run Python on Android?How to save an Android Activity state using save instance state?Close/hide the Android Soft KeyboardWhy is the Android emulator so slow? How can we speed up the Android emulator?“Debug certificate expired” error in Eclipse Android pluginsIs there a unique Android device ID?What is 'Context' on Android?Proper use cases for Android UserManager.isUserAGoat()?Notification.Builder(context) deprecated Android OAndroid - Can't use NotificationCompat.Builder new constructor (Context, String)
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
After upgrading my project to Android O
buildToolsVersion "26.0.1"
Lint in Android Studio is showing a deprecated warning for the follow notification builder method:
new NotificationCompat.Builder(context)
The problem is: Android Developers update their Documentation describing NotificationChannel to support notifications in Android O, and provide us with a snippet, yet with the same deprecated warning:
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();
Notifications Overview
My question: Is there is any other solution for building notification, and still support Android O?
A solution I found is to pass the channel ID as a parameter in Notification.Builder constructor. But this solution is not exactly reusable.
new Notification.Builder(MainActivity.this, "channel_id")
android notifications android-notifications
|
show 3 more comments
After upgrading my project to Android O
buildToolsVersion "26.0.1"
Lint in Android Studio is showing a deprecated warning for the follow notification builder method:
new NotificationCompat.Builder(context)
The problem is: Android Developers update their Documentation describing NotificationChannel to support notifications in Android O, and provide us with a snippet, yet with the same deprecated warning:
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();
Notifications Overview
My question: Is there is any other solution for building notification, and still support Android O?
A solution I found is to pass the channel ID as a parameter in Notification.Builder constructor. But this solution is not exactly reusable.
new Notification.Builder(MainActivity.this, "channel_id")
android notifications android-notifications
4
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
3
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
1
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
The channel id is passed at the constructor, or can be placed usingnotificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as myNotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.
– GuilhermeFGL
Aug 2 '17 at 13:57
|
show 3 more comments
After upgrading my project to Android O
buildToolsVersion "26.0.1"
Lint in Android Studio is showing a deprecated warning for the follow notification builder method:
new NotificationCompat.Builder(context)
The problem is: Android Developers update their Documentation describing NotificationChannel to support notifications in Android O, and provide us with a snippet, yet with the same deprecated warning:
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();
Notifications Overview
My question: Is there is any other solution for building notification, and still support Android O?
A solution I found is to pass the channel ID as a parameter in Notification.Builder constructor. But this solution is not exactly reusable.
new Notification.Builder(MainActivity.this, "channel_id")
android notifications android-notifications
After upgrading my project to Android O
buildToolsVersion "26.0.1"
Lint in Android Studio is showing a deprecated warning for the follow notification builder method:
new NotificationCompat.Builder(context)
The problem is: Android Developers update their Documentation describing NotificationChannel to support notifications in Android O, and provide us with a snippet, yet with the same deprecated warning:
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();
Notifications Overview
My question: Is there is any other solution for building notification, and still support Android O?
A solution I found is to pass the channel ID as a parameter in Notification.Builder constructor. But this solution is not exactly reusable.
new Notification.Builder(MainActivity.this, "channel_id")
android notifications android-notifications
android notifications android-notifications
edited Feb 22 '18 at 7:25
Shree
1711 silver badge17 bronze badges
1711 silver badge17 bronze badges
asked Aug 2 '17 at 13:44
GuilhermeFGLGuilhermeFGL
1,2992 gold badges6 silver badges30 bronze badges
1,2992 gold badges6 silver badges30 bronze badges
4
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
3
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
1
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
The channel id is passed at the constructor, or can be placed usingnotificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as myNotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.
– GuilhermeFGL
Aug 2 '17 at 13:57
|
show 3 more comments
4
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
3
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
1
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
The channel id is passed at the constructor, or can be placed usingnotificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as myNotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.
– GuilhermeFGL
Aug 2 '17 at 13:57
4
4
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
3
3
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
1
1
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
The channel id is passed at the constructor, or can be placed using
notificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as my NotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.– GuilhermeFGL
Aug 2 '17 at 13:57
The channel id is passed at the constructor, or can be placed using
notificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as my NotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.– GuilhermeFGL
Aug 2 '17 at 13:57
|
show 3 more comments
8 Answers
8
active
oldest
votes
It is mentioned in the documentation that the builder method NotificationCompat.Builder(Context context)
has been deprecated. And we have to use the constructor which has the channelId
parameter:
NotificationCompat.Builder(Context context, String channelId)
https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
This constructor was deprecated in API level 26.0.0-beta1. use
NotificationCompat.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
https://developer.android.com/reference/android/app/Notification.Builder.html
This constructor was deprecated in API level 26. use
Notification.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
If you want to reuse the builder setters, you can create the builder with the channelId, and pass that builder to a helper method and set your preferred settings in that method.
3
It seems they are contradicting themselves when posting theNotification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)
– GuilhermeFGL
Aug 2 '17 at 16:00
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
You can also still useNotificationCompat.Builder(Context context)
, and then assign the channel like so:builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
|
show 1 more comment
Here is working code for all android versions as of API LEVEL 26+ with backward compatibility.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
UPDATE for API 26 to set Max priority
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
// .setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
notificationManager.notify(/*notification id*/1, notificationBuilder.build());
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `
– Aks4125
Dec 4 '17 at 8:03
|
show 8 more comments
Call the 2-arg constructor: For compatibility with Android O, call support-v4 NotificationCompat.Builder(Context context, String channelId)
. When running on Android N or earlier, the channelId
will be ignored. When running on Android O, also create a NotificationChannel
with the same channelId
.
Out of date sample code: The sample code on several JavaDoc pages such as Notification.Builder calling new Notification.Builder(mContext)
is out of date.
Deprecated constructors: Notification.Builder(Context context)
and v4 NotificationCompat.Builder(Context context)
are deprecated in favor of Notification[Compat].Builder(Context context, String channelId)
. (See Notification.Builder(android.content.Context) and v4 NotificationCompat.Builder(Context context).)
Deprecated class: The entire class v7 NotificationCompat.Builder
is deprecated. (See v7 NotificationCompat.Builder.) Previously, v7 NotificationCompat.Builder
was needed to support NotificationCompat.MediaStyle
. In Android O, there's a v4 NotificationCompat.MediaStyle
in the media-compat library's android.support.v4.media
package. Use that one if you need MediaStyle
.
API 14+: In Support Library from 26.0.0 and higher, the support-v4 and support-v7 packages both support a minimum API level of 14. The v# names are historical.
See Recent Support Library Revisions.
add a comment |
Instead of checking for Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
as many answers suggest, there is a slightly simpler way -
Add the following line to the application
section of AndroidManifest.xml file as explained in the Set Up a Firebase Cloud Messaging Client App on Android doc:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
Then add a line with a channel name to the values/strings.xml file:
<string name="default_notification_channel_id">default</string>
After that you will be able to use the new version of NotificationCompat.Builder constructor with 2 parameters (since the old constructor with 1 parameter has been deprecated in Android Oreo):
private void sendNotification(String title, String body)
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
how is this simpler? :S
– Nactus
Jan 20 at 1:57
add a comment |
Here is the sample code, which is working in Android Oreo and less than Oreo.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel notificationChannel = new NotificationChannel("ID", "Name", importance);
notificationManager.createNotificationChannel(notificationChannel);
builder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
else
builder = new NotificationCompat.Builder(getApplicationContext());
builder = builder
.setSmallIcon(R.drawable.ic_notification_icon)
.setColor(ContextCompat.getColor(context, R.color.color))
.setContentTitle(context.getString(R.string.getTitel))
.setTicker(context.getString(R.string.text))
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(requestCode, builder.build());
add a comment |
Simple Sample
public void showNotification (String from, String notification, Intent intent)
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
Notification_ID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_DEFAULT);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
Notification mNotification = builder
.setContentTitle(from)
.setContentText(notification)
// .setTicker("Hearty365")
// .setContentInfo("Info")
// .setPriority(Notification.PRIORITY_MAX)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
// .setDefaults(Notification.DEFAULT_ALL)
// .setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.build();
notificationManager.notify(/*notification id*/Notification_ID, mNotification);
add a comment |
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();
Right code will be :
Notification.Builder notification=new Notification.Builder(this)
with dependency 26.0.1 and new updated dependencies such as 28.0.0.
Some users use this code in the form of this :
Notification notification=new NotificationCompat.Builder(this)//this is also wrong code.
So Logic is that which Method you will declare or initilize then the same methode on Right side will be use for Allocation. if in Leftside of = you will use some method then the same method will be use in right side of = for Allocation with new.
Try this code...It will sure work
add a comment |
This constructor was deprecated in API level 26.1.0.
use NotificationCompat.Builder(Context, String) instead. All posted Notifications must specify a NotificationChannel Id.
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
add a comment |
protected by Nilesh Rathod Jun 19 '18 at 5:24
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
8 Answers
8
active
oldest
votes
8 Answers
8
active
oldest
votes
active
oldest
votes
active
oldest
votes
It is mentioned in the documentation that the builder method NotificationCompat.Builder(Context context)
has been deprecated. And we have to use the constructor which has the channelId
parameter:
NotificationCompat.Builder(Context context, String channelId)
https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
This constructor was deprecated in API level 26.0.0-beta1. use
NotificationCompat.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
https://developer.android.com/reference/android/app/Notification.Builder.html
This constructor was deprecated in API level 26. use
Notification.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
If you want to reuse the builder setters, you can create the builder with the channelId, and pass that builder to a helper method and set your preferred settings in that method.
3
It seems they are contradicting themselves when posting theNotification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)
– GuilhermeFGL
Aug 2 '17 at 16:00
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
You can also still useNotificationCompat.Builder(Context context)
, and then assign the channel like so:builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
|
show 1 more comment
It is mentioned in the documentation that the builder method NotificationCompat.Builder(Context context)
has been deprecated. And we have to use the constructor which has the channelId
parameter:
NotificationCompat.Builder(Context context, String channelId)
https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
This constructor was deprecated in API level 26.0.0-beta1. use
NotificationCompat.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
https://developer.android.com/reference/android/app/Notification.Builder.html
This constructor was deprecated in API level 26. use
Notification.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
If you want to reuse the builder setters, you can create the builder with the channelId, and pass that builder to a helper method and set your preferred settings in that method.
3
It seems they are contradicting themselves when posting theNotification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)
– GuilhermeFGL
Aug 2 '17 at 16:00
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
You can also still useNotificationCompat.Builder(Context context)
, and then assign the channel like so:builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
|
show 1 more comment
It is mentioned in the documentation that the builder method NotificationCompat.Builder(Context context)
has been deprecated. And we have to use the constructor which has the channelId
parameter:
NotificationCompat.Builder(Context context, String channelId)
https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
This constructor was deprecated in API level 26.0.0-beta1. use
NotificationCompat.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
https://developer.android.com/reference/android/app/Notification.Builder.html
This constructor was deprecated in API level 26. use
Notification.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
If you want to reuse the builder setters, you can create the builder with the channelId, and pass that builder to a helper method and set your preferred settings in that method.
It is mentioned in the documentation that the builder method NotificationCompat.Builder(Context context)
has been deprecated. And we have to use the constructor which has the channelId
parameter:
NotificationCompat.Builder(Context context, String channelId)
https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
This constructor was deprecated in API level 26.0.0-beta1. use
NotificationCompat.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
https://developer.android.com/reference/android/app/Notification.Builder.html
This constructor was deprecated in API level 26. use
Notification.Builder(Context, String) instead. All posted
Notifications must specify a NotificationChannel Id.
If you want to reuse the builder setters, you can create the builder with the channelId, and pass that builder to a helper method and set your preferred settings in that method.
answered Aug 2 '17 at 15:52
BobBob
8,5884 gold badges16 silver badges33 bronze badges
8,5884 gold badges16 silver badges33 bronze badges
3
It seems they are contradicting themselves when posting theNotification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)
– GuilhermeFGL
Aug 2 '17 at 16:00
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
You can also still useNotificationCompat.Builder(Context context)
, and then assign the channel like so:builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
|
show 1 more comment
3
It seems they are contradicting themselves when posting theNotification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)
– GuilhermeFGL
Aug 2 '17 at 16:00
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
You can also still useNotificationCompat.Builder(Context context)
, and then assign the channel like so:builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
3
3
It seems they are contradicting themselves when posting the
Notification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)– GuilhermeFGL
Aug 2 '17 at 16:00
It seems they are contradicting themselves when posting the
Notification.Builder(context)
solution in the NotificationChannel session. But well, at least you found a post notifying this deprecating =)– GuilhermeFGL
Aug 2 '17 at 16:00
18
18
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
What is the channelId can you please explain ?
– Santanu Sur
Jan 26 '18 at 8:39
13
13
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
what is channelId ?
– RoundTwo
Jan 30 '18 at 16:55
3
3
You can also still use
NotificationCompat.Builder(Context context)
, and then assign the channel like so: builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
You can also still use
NotificationCompat.Builder(Context context)
, and then assign the channel like so: builder.setChannelId(String channelId)
– deyanm
Apr 30 '18 at 10:27
25
25
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
A channel Id can be any string , it is too big to discuss in comments, but it is used to separate your notifications into categories so that the user can disable what he thinks is not important to him rather than blocking all notifications from your app.
– yehyatt
May 15 '18 at 8:16
|
show 1 more comment
Here is working code for all android versions as of API LEVEL 26+ with backward compatibility.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
UPDATE for API 26 to set Max priority
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
// .setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
notificationManager.notify(/*notification id*/1, notificationBuilder.build());
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `
– Aks4125
Dec 4 '17 at 8:03
|
show 8 more comments
Here is working code for all android versions as of API LEVEL 26+ with backward compatibility.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
UPDATE for API 26 to set Max priority
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
// .setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
notificationManager.notify(/*notification id*/1, notificationBuilder.build());
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `
– Aks4125
Dec 4 '17 at 8:03
|
show 8 more comments
Here is working code for all android versions as of API LEVEL 26+ with backward compatibility.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
UPDATE for API 26 to set Max priority
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
// .setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
notificationManager.notify(/*notification id*/1, notificationBuilder.build());
Here is working code for all android versions as of API LEVEL 26+ with backward compatibility.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "M_CH_ID");
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
UPDATE for API 26 to set Max priority
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Hearty365")
// .setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Default notification")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setContentInfo("Info");
notificationManager.notify(/*notification id*/1, notificationBuilder.build());
edited Aug 7 '18 at 4:10
answered Nov 15 '17 at 9:32
Aks4125Aks4125
3,2202 gold badges17 silver badges36 bronze badges
3,2202 gold badges17 silver badges36 bronze badges
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `
– Aks4125
Dec 4 '17 at 8:03
|
show 8 more comments
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `
– Aks4125
Dec 4 '17 at 8:03
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
How can you make the notification actually show on the screen in the app or if in another app?
– BlueBoy
Nov 19 '17 at 1:27
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@BlueBoy i am not getting your question. could you please explain what exactly you need?
– Aks4125
Nov 20 '17 at 4:20
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@Aks4125 The notification doesn't slide down and show at the top of the screen. You hear a tone, and a tiny notification icon appears in the status bar - but nothing slides down and shows like if you got a txt message.
– BlueBoy
Nov 20 '17 at 20:26
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
@BlueBoy you need to set priority to HIGH for that behaviour. let me know if you need me to update this code. if you sneak around for high priority notification you will get your answer.
– Aks4125
Dec 4 '17 at 5:10
1
1
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with
.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `– Aks4125
Dec 4 '17 at 8:03
@BlueBoy check updated answer. if you're not targeting 26 API then just use same code with
.setPriority(Notification.PRIORITY_MAX)
else use updated code for 26 API. `– Aks4125
Dec 4 '17 at 8:03
|
show 8 more comments
Call the 2-arg constructor: For compatibility with Android O, call support-v4 NotificationCompat.Builder(Context context, String channelId)
. When running on Android N or earlier, the channelId
will be ignored. When running on Android O, also create a NotificationChannel
with the same channelId
.
Out of date sample code: The sample code on several JavaDoc pages such as Notification.Builder calling new Notification.Builder(mContext)
is out of date.
Deprecated constructors: Notification.Builder(Context context)
and v4 NotificationCompat.Builder(Context context)
are deprecated in favor of Notification[Compat].Builder(Context context, String channelId)
. (See Notification.Builder(android.content.Context) and v4 NotificationCompat.Builder(Context context).)
Deprecated class: The entire class v7 NotificationCompat.Builder
is deprecated. (See v7 NotificationCompat.Builder.) Previously, v7 NotificationCompat.Builder
was needed to support NotificationCompat.MediaStyle
. In Android O, there's a v4 NotificationCompat.MediaStyle
in the media-compat library's android.support.v4.media
package. Use that one if you need MediaStyle
.
API 14+: In Support Library from 26.0.0 and higher, the support-v4 and support-v7 packages both support a minimum API level of 14. The v# names are historical.
See Recent Support Library Revisions.
add a comment |
Call the 2-arg constructor: For compatibility with Android O, call support-v4 NotificationCompat.Builder(Context context, String channelId)
. When running on Android N or earlier, the channelId
will be ignored. When running on Android O, also create a NotificationChannel
with the same channelId
.
Out of date sample code: The sample code on several JavaDoc pages such as Notification.Builder calling new Notification.Builder(mContext)
is out of date.
Deprecated constructors: Notification.Builder(Context context)
and v4 NotificationCompat.Builder(Context context)
are deprecated in favor of Notification[Compat].Builder(Context context, String channelId)
. (See Notification.Builder(android.content.Context) and v4 NotificationCompat.Builder(Context context).)
Deprecated class: The entire class v7 NotificationCompat.Builder
is deprecated. (See v7 NotificationCompat.Builder.) Previously, v7 NotificationCompat.Builder
was needed to support NotificationCompat.MediaStyle
. In Android O, there's a v4 NotificationCompat.MediaStyle
in the media-compat library's android.support.v4.media
package. Use that one if you need MediaStyle
.
API 14+: In Support Library from 26.0.0 and higher, the support-v4 and support-v7 packages both support a minimum API level of 14. The v# names are historical.
See Recent Support Library Revisions.
add a comment |
Call the 2-arg constructor: For compatibility with Android O, call support-v4 NotificationCompat.Builder(Context context, String channelId)
. When running on Android N or earlier, the channelId
will be ignored. When running on Android O, also create a NotificationChannel
with the same channelId
.
Out of date sample code: The sample code on several JavaDoc pages such as Notification.Builder calling new Notification.Builder(mContext)
is out of date.
Deprecated constructors: Notification.Builder(Context context)
and v4 NotificationCompat.Builder(Context context)
are deprecated in favor of Notification[Compat].Builder(Context context, String channelId)
. (See Notification.Builder(android.content.Context) and v4 NotificationCompat.Builder(Context context).)
Deprecated class: The entire class v7 NotificationCompat.Builder
is deprecated. (See v7 NotificationCompat.Builder.) Previously, v7 NotificationCompat.Builder
was needed to support NotificationCompat.MediaStyle
. In Android O, there's a v4 NotificationCompat.MediaStyle
in the media-compat library's android.support.v4.media
package. Use that one if you need MediaStyle
.
API 14+: In Support Library from 26.0.0 and higher, the support-v4 and support-v7 packages both support a minimum API level of 14. The v# names are historical.
See Recent Support Library Revisions.
Call the 2-arg constructor: For compatibility with Android O, call support-v4 NotificationCompat.Builder(Context context, String channelId)
. When running on Android N or earlier, the channelId
will be ignored. When running on Android O, also create a NotificationChannel
with the same channelId
.
Out of date sample code: The sample code on several JavaDoc pages such as Notification.Builder calling new Notification.Builder(mContext)
is out of date.
Deprecated constructors: Notification.Builder(Context context)
and v4 NotificationCompat.Builder(Context context)
are deprecated in favor of Notification[Compat].Builder(Context context, String channelId)
. (See Notification.Builder(android.content.Context) and v4 NotificationCompat.Builder(Context context).)
Deprecated class: The entire class v7 NotificationCompat.Builder
is deprecated. (See v7 NotificationCompat.Builder.) Previously, v7 NotificationCompat.Builder
was needed to support NotificationCompat.MediaStyle
. In Android O, there's a v4 NotificationCompat.MediaStyle
in the media-compat library's android.support.v4.media
package. Use that one if you need MediaStyle
.
API 14+: In Support Library from 26.0.0 and higher, the support-v4 and support-v7 packages both support a minimum API level of 14. The v# names are historical.
See Recent Support Library Revisions.
answered Aug 9 '17 at 1:15
Jerry101Jerry101
5,2311 gold badge22 silver badges37 bronze badges
5,2311 gold badge22 silver badges37 bronze badges
add a comment |
add a comment |
Instead of checking for Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
as many answers suggest, there is a slightly simpler way -
Add the following line to the application
section of AndroidManifest.xml file as explained in the Set Up a Firebase Cloud Messaging Client App on Android doc:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
Then add a line with a channel name to the values/strings.xml file:
<string name="default_notification_channel_id">default</string>
After that you will be able to use the new version of NotificationCompat.Builder constructor with 2 parameters (since the old constructor with 1 parameter has been deprecated in Android Oreo):
private void sendNotification(String title, String body)
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
how is this simpler? :S
– Nactus
Jan 20 at 1:57
add a comment |
Instead of checking for Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
as many answers suggest, there is a slightly simpler way -
Add the following line to the application
section of AndroidManifest.xml file as explained in the Set Up a Firebase Cloud Messaging Client App on Android doc:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
Then add a line with a channel name to the values/strings.xml file:
<string name="default_notification_channel_id">default</string>
After that you will be able to use the new version of NotificationCompat.Builder constructor with 2 parameters (since the old constructor with 1 parameter has been deprecated in Android Oreo):
private void sendNotification(String title, String body)
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
how is this simpler? :S
– Nactus
Jan 20 at 1:57
add a comment |
Instead of checking for Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
as many answers suggest, there is a slightly simpler way -
Add the following line to the application
section of AndroidManifest.xml file as explained in the Set Up a Firebase Cloud Messaging Client App on Android doc:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
Then add a line with a channel name to the values/strings.xml file:
<string name="default_notification_channel_id">default</string>
After that you will be able to use the new version of NotificationCompat.Builder constructor with 2 parameters (since the old constructor with 1 parameter has been deprecated in Android Oreo):
private void sendNotification(String title, String body)
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
Instead of checking for Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
as many answers suggest, there is a slightly simpler way -
Add the following line to the application
section of AndroidManifest.xml file as explained in the Set Up a Firebase Cloud Messaging Client App on Android doc:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
Then add a line with a channel name to the values/strings.xml file:
<string name="default_notification_channel_id">default</string>
After that you will be able to use the new version of NotificationCompat.Builder constructor with 2 parameters (since the old constructor with 1 parameter has been deprecated in Android Oreo):
private void sendNotification(String title, String body)
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
edited Mar 30 '18 at 15:29
answered Nov 22 '17 at 15:27
Alexander FarberAlexander Farber
8,27056 gold badges191 silver badges337 bronze badges
8,27056 gold badges191 silver badges337 bronze badges
how is this simpler? :S
– Nactus
Jan 20 at 1:57
add a comment |
how is this simpler? :S
– Nactus
Jan 20 at 1:57
how is this simpler? :S
– Nactus
Jan 20 at 1:57
how is this simpler? :S
– Nactus
Jan 20 at 1:57
add a comment |
Here is the sample code, which is working in Android Oreo and less than Oreo.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel notificationChannel = new NotificationChannel("ID", "Name", importance);
notificationManager.createNotificationChannel(notificationChannel);
builder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
else
builder = new NotificationCompat.Builder(getApplicationContext());
builder = builder
.setSmallIcon(R.drawable.ic_notification_icon)
.setColor(ContextCompat.getColor(context, R.color.color))
.setContentTitle(context.getString(R.string.getTitel))
.setTicker(context.getString(R.string.text))
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(requestCode, builder.build());
add a comment |
Here is the sample code, which is working in Android Oreo and less than Oreo.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel notificationChannel = new NotificationChannel("ID", "Name", importance);
notificationManager.createNotificationChannel(notificationChannel);
builder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
else
builder = new NotificationCompat.Builder(getApplicationContext());
builder = builder
.setSmallIcon(R.drawable.ic_notification_icon)
.setColor(ContextCompat.getColor(context, R.color.color))
.setContentTitle(context.getString(R.string.getTitel))
.setTicker(context.getString(R.string.text))
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(requestCode, builder.build());
add a comment |
Here is the sample code, which is working in Android Oreo and less than Oreo.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel notificationChannel = new NotificationChannel("ID", "Name", importance);
notificationManager.createNotificationChannel(notificationChannel);
builder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
else
builder = new NotificationCompat.Builder(getApplicationContext());
builder = builder
.setSmallIcon(R.drawable.ic_notification_icon)
.setColor(ContextCompat.getColor(context, R.color.color))
.setContentTitle(context.getString(R.string.getTitel))
.setTicker(context.getString(R.string.text))
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(requestCode, builder.build());
Here is the sample code, which is working in Android Oreo and less than Oreo.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel notificationChannel = new NotificationChannel("ID", "Name", importance);
notificationManager.createNotificationChannel(notificationChannel);
builder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
else
builder = new NotificationCompat.Builder(getApplicationContext());
builder = builder
.setSmallIcon(R.drawable.ic_notification_icon)
.setColor(ContextCompat.getColor(context, R.color.color))
.setContentTitle(context.getString(R.string.getTitel))
.setTicker(context.getString(R.string.text))
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(requestCode, builder.build());
answered Nov 16 '17 at 10:13
ArpitArpit
9099 silver badges16 bronze badges
9099 silver badges16 bronze badges
add a comment |
add a comment |
Simple Sample
public void showNotification (String from, String notification, Intent intent)
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
Notification_ID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_DEFAULT);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
Notification mNotification = builder
.setContentTitle(from)
.setContentText(notification)
// .setTicker("Hearty365")
// .setContentInfo("Info")
// .setPriority(Notification.PRIORITY_MAX)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
// .setDefaults(Notification.DEFAULT_ALL)
// .setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.build();
notificationManager.notify(/*notification id*/Notification_ID, mNotification);
add a comment |
Simple Sample
public void showNotification (String from, String notification, Intent intent)
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
Notification_ID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_DEFAULT);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
Notification mNotification = builder
.setContentTitle(from)
.setContentText(notification)
// .setTicker("Hearty365")
// .setContentInfo("Info")
// .setPriority(Notification.PRIORITY_MAX)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
// .setDefaults(Notification.DEFAULT_ALL)
// .setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.build();
notificationManager.notify(/*notification id*/Notification_ID, mNotification);
add a comment |
Simple Sample
public void showNotification (String from, String notification, Intent intent)
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
Notification_ID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_DEFAULT);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
Notification mNotification = builder
.setContentTitle(from)
.setContentText(notification)
// .setTicker("Hearty365")
// .setContentInfo("Info")
// .setPriority(Notification.PRIORITY_MAX)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
// .setDefaults(Notification.DEFAULT_ALL)
// .setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.build();
notificationManager.notify(/*notification id*/Notification_ID, mNotification);
Simple Sample
public void showNotification (String from, String notification, Intent intent)
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
Notification_ID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_DEFAULT);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]0, 1000, 500, 1000);
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
Notification mNotification = builder
.setContentTitle(from)
.setContentText(notification)
// .setTicker("Hearty365")
// .setContentInfo("Info")
// .setPriority(Notification.PRIORITY_MAX)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
// .setDefaults(Notification.DEFAULT_ALL)
// .setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.build();
notificationManager.notify(/*notification id*/Notification_ID, mNotification);
answered Jan 30 '18 at 12:32
MehulMehul
1,66111 silver badges24 bronze badges
1,66111 silver badges24 bronze badges
add a comment |
add a comment |
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();
Right code will be :
Notification.Builder notification=new Notification.Builder(this)
with dependency 26.0.1 and new updated dependencies such as 28.0.0.
Some users use this code in the form of this :
Notification notification=new NotificationCompat.Builder(this)//this is also wrong code.
So Logic is that which Method you will declare or initilize then the same methode on Right side will be use for Allocation. if in Leftside of = you will use some method then the same method will be use in right side of = for Allocation with new.
Try this code...It will sure work
add a comment |
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();
Right code will be :
Notification.Builder notification=new Notification.Builder(this)
with dependency 26.0.1 and new updated dependencies such as 28.0.0.
Some users use this code in the form of this :
Notification notification=new NotificationCompat.Builder(this)//this is also wrong code.
So Logic is that which Method you will declare or initilize then the same methode on Right side will be use for Allocation. if in Leftside of = you will use some method then the same method will be use in right side of = for Allocation with new.
Try this code...It will sure work
add a comment |
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();
Right code will be :
Notification.Builder notification=new Notification.Builder(this)
with dependency 26.0.1 and new updated dependencies such as 28.0.0.
Some users use this code in the form of this :
Notification notification=new NotificationCompat.Builder(this)//this is also wrong code.
So Logic is that which Method you will declare or initilize then the same methode on Right side will be use for Allocation. if in Leftside of = you will use some method then the same method will be use in right side of = for Allocation with new.
Try this code...It will sure work
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();
Right code will be :
Notification.Builder notification=new Notification.Builder(this)
with dependency 26.0.1 and new updated dependencies such as 28.0.0.
Some users use this code in the form of this :
Notification notification=new NotificationCompat.Builder(this)//this is also wrong code.
So Logic is that which Method you will declare or initilize then the same methode on Right side will be use for Allocation. if in Leftside of = you will use some method then the same method will be use in right side of = for Allocation with new.
Try this code...It will sure work
edited May 26 '18 at 14:19
Tim Diekmann
3,7319 gold badges20 silver badges40 bronze badges
3,7319 gold badges20 silver badges40 bronze badges
answered May 26 '18 at 13:56
Pradeep SheoranPradeep Sheoran
18611 bronze badges
18611 bronze badges
add a comment |
add a comment |
This constructor was deprecated in API level 26.1.0.
use NotificationCompat.Builder(Context, String) instead. All posted Notifications must specify a NotificationChannel Id.
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
add a comment |
This constructor was deprecated in API level 26.1.0.
use NotificationCompat.Builder(Context, String) instead. All posted Notifications must specify a NotificationChannel Id.
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
add a comment |
This constructor was deprecated in API level 26.1.0.
use NotificationCompat.Builder(Context, String) instead. All posted Notifications must specify a NotificationChannel Id.
This constructor was deprecated in API level 26.1.0.
use NotificationCompat.Builder(Context, String) instead. All posted Notifications must specify a NotificationChannel Id.
answered May 4 '18 at 6:38
Sandeep SinghSandeep Singh
6096 silver badges19 bronze badges
6096 silver badges19 bronze badges
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
add a comment |
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
Maybe rather add a comment with link to the documentation instead of copy cat and posting as an answer.
– JacksOnF1re
Oct 4 '18 at 14:58
add a comment |
protected by Nilesh Rathod Jun 19 '18 at 5:24
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
4
But this solution is not exactly reusable. how so?
– Tim Castelijns
Aug 2 '17 at 13:45
3
NotificationCompat.Builder is deprecated not Notification.Builder. Notice the Compat part gone. Notification is their new class where they are streamlining everything
– Kapil G
Aug 2 '17 at 13:50
1
@kapsym it's the other way around actually. Notification.Builder is older
– Tim Castelijns
Aug 2 '17 at 13:52
Plus i dont see it deprecated here developer.android.com/reference/android/support/v4/app/…. Maybe a bug in Lint
– Kapil G
Aug 2 '17 at 13:54
The channel id is passed at the constructor, or can be placed using
notificationBuild.setChannelId("channel_id")
. In my case this last solution is more reusabled as myNotificationCompat.Builder
is reused in a couple methods, saving up parameters for icons, sounds and vibrates.– GuilhermeFGL
Aug 2 '17 at 13:57