Android Oreo: Grouped Notifications With Notification Channels - android

I followed the documentation provided here and can successfully create a notification group on Android N and higher. The issue I'm having however, is with Android Oreo, each notification posted to the group plays the sound for the group.
This is annoying because I'd just like the sound to play once. Each individual notification is a summary of the chats the user hasn't read for each chat room they're in. I need the grouping for when there are multiple chat rooms with unread messages.
There doesn't seem to be a way to set the sound for a notification dynamically, it's limited to channel creation.
I tried following what Dan Lew suggested here but the notification sound plays for each notification still.
My question therefore is, how do you get grouped notification in Android Oreo without having a notification sound play for each?

I'd been working for the entire week trying to solve it, but I find the answer shortly after asking on StackOverflow lol.
The answer comes courtesy of Dan Lew again, but I needed to call
notificationBuilder.setGroupAlertBehavior(Notification.GROUP_ALERT_SUMMARY)
on the children notifications.
More detail can be found here.

Related

Firebase push notification is not working properly when device is offline

I am implement a tap action on the notification and then i found out that when i am offline and triggering the notification. and when i am coming to online i am only receiving the last notification. and it is only happening in android
please help
I have read lot of solution but did not found any proper answer.
I assume you've read this then. Check notification's time to live first, and if you're sure that's not the cause, make sure you're using different notification ids for notifications, otherwise you'll replace the currently shown notification with a new one.
Answered a similar post here. This is working as intended as notification messages are always collapsible.

Notification Channel Id Should be Unique for Each Notification

Since Android 8 notification channels required for notifications. My Question is each and every notification should have different notification channel Id or same channel Id?
Notification channels let you group related types of notifications together.
Why would you need that?
A user may only want to disable notifications for a specific type. Let's say in a Calendar App he may want to disable all notifications which are of type reminder. Instead of disabling all notifications, the user (if a channel for reminders exists) can now specifically say: Ok I only want to disable reminder notifications.
In short: It enables the user to filter notifications more granular.
Just provide a different notification channel for each different notification "type" (meaning: they do not relate to each other).
Ok very good question, I am sure, I am late to answer but today I came across same problem. Actually I am showing multiple notification and when I long press on it and click on turn off notifications for my app, I came to know that same channel is being added multiple times as shown below:
So as and when I show the notification, I was using unique channel id while showing the notification, so even though notification channel name is same but channel id is different & unique, it keeps adding new channel each time I show the notification, that is completely wrong. It unnecessary ads multiple channels, very hard to turn off notification and many more reason.
So, in short, while you show particular group's notification, please use same channel name and channel id. Notification of particular type is grouped under channel id, not the channel name technically. But user can see the channel name only when he wants to turn it off.
Hope this answer your query and it will also help to others who are facing same issue of duplicate or multiple channels being created on each notification.

Android - Notification Reminder - Remind user to open the unread notification

I searched quite a bit on here and can't figure this one out. All the posted questions refer to setting a notification to go off at a certain date/time or on a schedule. This is not what I am trying to do. It might not be possible and might be a system-controlled thing.
The feature I want to emulate/override/extend/whatever is the Notification Reminder in Android. This feature is part of android and can be set to something like "2 min", "10 min", whatever, and if you don't check the notification from an app then the device will give a little notification sound again to remind you that you still have the notification waiting in your notification bar. Do you know the feature I am referring to? (On my S6 I go to 'Accessibility --> Notification Reminder')
Is there a way for me to create this behavior in my app without relying on the system settings?
I want to make the device remind the user every 30 seconds that they have an unread notification from my app, and only from my app. The 2-minute reminder that Android offers is not enough (and also, it isn't working reliably for my users... can't figure out why. Sometimes it reminds, sometimes it doesn't.)
ALLOW ME BE COMPLETELY CLEAR ABOUT SOMETHING:
This app is being created for a government agency and is not being made to 'please the user'. I understand that there are certain things that are considered wrong, but trust me, that doesn't apply here. This app is for emergency notification for an 'on-call-24/7' unit with devices that are owned by the government. For example, I have a feature that allows the alert sender to force the recipient's ringtone on full blast with a preset tone. Obviously this would be terrible in a public app, but here, it is a requirement.
Thank you very much for any help! If you need me to post code, or more information about my specific implementation of the notification builder then let me know.
UPDATE:
Did my question get lost in the ether? lol, any takers?

How to get all notification of all application have custom notification running

I'm a beginner. I have a problem about custom notification.
I want to read all information of normal notification and custom notification use RemoteView.
Example I want get all information about notification music(art cover, song, next, pause, back action)
I search very very much, but can't find the document I need.
If you know, please tell me.
Thank so much!
What you're looking for is a NotificationListenerService. From the docs:
A service that receives calls from the system when new notifications are posted or removed, or their ranking changed.
If you're specifically looking for ways to read Metadata and the music app is using a MediaSessionCompat, you can use MediaControllerCompat.getMetadata() to read the data off of the notification.
To display the actual content of the notification in your app, what you can do is get one of the many RemoteViews from the Notification object you received, then use this answer to display your notification.

How to stack notifications on Jelly Bean?

following my previous notification problems I wanted to test the new notification stack feature of Jelly Bean 4.1 as it is described here. I already found out, that notifications need to have different IDs, otherwise the older notification will just be updated with the content of the second notification. If I use different IDs, my Notifications will just be a list:
The small secondary icon is set with setSmallIcon() (see my first notification on the screenshot above), while the larger icon is set with setLargeIcon(). What I cannot control is when the number of pending notifications will be displayed. It is not controlled by the text lines mentioned in my other question.
So my guess is, that Jelly Bean will take care automatically of multiple notifications, but how can I trigger this? Maybe someone can give me a piece of code or a hint in the documentation.
You wrote the answer in your question: "otherwise the older notification will just be updated with the content of the second notification". However, your app needs to have the smarts to know what the "second notification" should show, to cover all events since the last time the user interacted with your app. Then, the "second notification" can contain information about both events, not just the second one.
You have to use the same notification id for all notifications and then just update the every notification with a new static number.

Categories

Resources