Notifications in Android Oreo (8+)
Android Oreo has brought in a ton of changes. This also includes the way in which a user issue notifications in an app. In this article, we will discuss the changes required to be made in the notification department. The following things are to be kept in mind while issuing notifications:
- Designing a Notification Channel
- Importance of each notification channel
- Notification ID (different from channel id) should not be set to zero.
Before going forward, make sure this line is added to the build.gradle (Module: app) dependencies:
Let’s start with making a notification channel. The method below creates a notification channel:
Let’s see what this method does in detail.
- The method accepts String id, String name, int importance.
- String id: This is the id with which you issue a notification in the notification channel. You use this exact id for multiple notifications in the same channel.
- String name: This is the name of the channel visible when someone taps and navigate to Settings -> Apps & Notifications -> [your_app_name] -> App notifications.
- int importance: This is the importance level of the channel. The levels are as follows:
- NotificationManager.IMPORTANCE_MIN – shows only in the notification shade, no sound or peek.
- NotificationManager.IMPORTANCE_LOW – shows everywhere, doesn’t make sound, doesn’t peek.
- NotificationManager.IMPORTANCE_DEFAULT – shows everywhere, makes sound but doesn’t peek.
- NotificationManager.IMPORTANCE_HIGH – shows everywhere, makes sound and peeks (visual interruption).
- NotificationManager.IMPORTANCE_MAX – this importance level is usually not used. Works similar to IMPORTANCE_HIGH.
- The method then creates the channel with the parameters.
- The setShowBadge(true) makes the notification available by the Oreo notification dot feature.
- Finally, the notification channel is created by the createNotificationChannel() method of NotificationManager.
- First, the above method initially creates a notification channel with id = “CHANNEL_1” and the name “Example channel”. The id isn’t visible anywhere but the name can be viewed by opening the “App notifications” option of the App Info page.
- Then a NotificationCompat.Builder object is made specifying the context and id as “CHANNEL_1”. A different channel id can be mentioned provided it is made with the makeNotificationChannel() method. The rest is self-explanatory. The setNumber() method shows a number in the notification dot of the app.
- Finally, the notification id (here 1) is better to not set 0 as in cases where the notification is used for a Foreground service, it will fail to display if the id is 0. On executing the issueNotification() method, we get the following notification:
My Personal Notes arrow_drop_up
Please Login to comment...