[GH-ISSUE #1456] Android: Can not set Exact Alarams as ntfy is not shown in the App list there #1026

Closed
opened 2026-05-07 00:29:40 +02:00 by BreizhHardware · 19 comments

Originally created by @HappyLer on GitHub (Oct 3, 2025).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1456

🐞 Describe the bug
When I try to enable Exact Alarms I get sent to the menu for Alarams & Reminders, where I see multiple installed apps but ntfy is not there, hence I can not enable it.

💻 Components impacted
Android App 1.17.8 from F-Droid in Graphene OS Build 2025092700

💡 Screenshots and/or logs

🔮 Additional context

Originally created by @HappyLer on GitHub (Oct 3, 2025). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1456 :lady_beetle: **Describe the bug** When I try to enable Exact Alarms I get sent to the menu for Alarams & Reminders, where I see multiple installed apps but ntfy is not there, hence I can not enable it. :computer: **Components impacted** Android App 1.17.8 from F-Droid in Graphene OS Build 2025092700 :bulb: **Screenshots and/or logs** - :crystal_ball: **Additional context** -
BreizhHardware 2026-05-07 00:29:40 +02:00
Author
Owner

@szimszon commented on GitHub (Oct 14, 2025):

Same here, Android 15 Nothing OS, Android App 1.17.8 from F-Droid

<!-- gh-comment-id:3403311424 --> @szimszon commented on GitHub (Oct 14, 2025): Same here, Android 15 Nothing OS, Android App 1.17.8 from F-Droid
Author
Owner

@BalkanMadman commented on GitHub (Nov 24, 2025):

Can reproduce. The app doesn't have the "Alarms and reminders" section in Settings.

<!-- gh-comment-id:3570411026 --> @BalkanMadman commented on GitHub (Nov 24, 2025): Can reproduce. The app doesn't have the "Alarms and reminders" section in Settings.
Author
Owner

@User-green commented on GitHub (Nov 24, 2025):

Same here.
Reinstalling the app fixed the issue.
I am instaling with sui, may be it is a problem with session installer?

Upd. It dissapires from the list as soon as a topic is added.

<!-- gh-comment-id:3571265236 --> @User-green commented on GitHub (Nov 24, 2025): Same here. Reinstalling the app fixed the issue. I am instaling with `sui`, may be it is a problem with session installer? Upd. It dissapires from the list as soon as a topic is added.
Author
Owner

@BalkanMadman commented on GitHub (Nov 24, 2025):

Can confirm the exact situation.

Reinstall: the section appears in the settings. Add a topic: the section disappears.

<!-- gh-comment-id:3572791581 --> @BalkanMadman commented on GitHub (Nov 24, 2025): Can confirm the exact situation. Reinstall: the section appears in the settings. Add a topic: the section disappears.
Author
Owner

@prurigro commented on GitHub (Dec 7, 2025):

I can't get it to appear in the list in the first place, the settings option will bring me to the list and there are lots of other apps in there. This is both with a fresh install from f-droid and the official repo. I'm also running Graphene.

<!-- gh-comment-id:3622887098 --> @prurigro commented on GitHub (Dec 7, 2025): I can't get it to appear in the list in the first place, the settings option will bring me to the list and there are lots of other apps in there. This is both with a fresh install from f-droid and the official repo. I'm also running Graphene.
Author
Owner

@dill-shower commented on GitHub (Dec 29, 2025):

Same on 1.19.4

<!-- gh-comment-id:3696419228 --> @dill-shower commented on GitHub (Dec 29, 2025): Same on 1.19.4
Author
Owner

@binwiederhier commented on GitHub (Dec 29, 2025):

This is apparently normal (according to ChatGPT): https://chatgpt.com/share/6949423d-27fc-800d-8787-0983b72465be

I didn't find any official documentation, but I think I'll likely just remove the thing in the settings. I'll research a little later.

<!-- gh-comment-id:3696480238 --> @binwiederhier commented on GitHub (Dec 29, 2025): This is apparently normal (according to ChatGPT): https://chatgpt.com/share/6949423d-27fc-800d-8787-0983b72465be I didn't find any official documentation, but I think I'll likely just remove the thing in the settings. I'll research a little later.
Author
Owner

@User-green commented on GitHub (Jan 3, 2026):

This is apparently normal (according to ChatGPT): https://chatgpt.com/share/6949423d-27fc-800d-8787-0983b72465be

ChatGPL lies to you. It is not normal for app to dispper from any setting screen. How am I meant to revoke permissions otherwise?
Also, docs

I didn't find any official documentation, but I think I'll likely just remove the thing in the settings. I'll research a little later.

I am more interested in knowing what, exectly, this permission is used for, here. It looks like it should allow to remove the notification, if I am reading this docs correctly.

<!-- gh-comment-id:3706904789 --> @User-green commented on GitHub (Jan 3, 2026): > This is apparently normal (according to ChatGPT): https://chatgpt.com/share/6949423d-27fc-800d-8787-0983b72465be ChatGPL lies to you. It is not normal for app to dispper from any setting screen. How am I meant to revoke permissions otherwise? Also, [docs](https://stackoverflow.com/questions/71031091/android-12-using-schedule-exact-alarm-permission-to-get-show-data-at-specific-t#72183560) > I didn't find any official documentation, but I think I'll likely just remove the thing in the settings. I'll research a little later. I am more interested in knowing what, exectly, this permission is used for, here. It looks like it should allow to remove the notification, if I am reading this docs correctly.
Author
Owner

@HappyLer commented on GitHub (Jan 3, 2026):

according to ChatGPT

I know expectations of users in open source developers is a sensitive topic and it is not my intention to discredit you here. However, to me it is highly concerning when $LLM is used in such a way during development and quoted in discussions as if it was a trustworthy source. Please never fully trust $LLM when developing a piece of software that is used by other people. I know you wrote that you will research it later and I assume you would not have fully trusted it but even linking it will lead to more LLMs ingesting it and people referencing to it etc.

<!-- gh-comment-id:3706984933 --> @HappyLer commented on GitHub (Jan 3, 2026): > according to ChatGPT I know expectations of users in open source developers is a sensitive topic and it is not my intention to discredit you here. However, to me it is highly concerning when $LLM is used in such a way during development and quoted in discussions as if it was a trustworthy source. Please never fully trust $LLM when developing a piece of software that is used by other people. I know you wrote that you will research it later and I assume you would not have fully trusted it but even linking it will lead to more LLMs ingesting it and people referencing to it etc.
Author
Owner

@binwiederhier commented on GitHub (Jan 3, 2026):

@User-green:

ChatGPL lies to you. It is not normal for app to dispper from any setting screen. How am I meant to revoke permissions otherwise? Also, docs

I am happy to be corrected. I would love to figure out how to make the app show up in the alams list, but just because you are outraged doesn't mean that we'll be able to figure it out.

The link you shared is a StackOverflow answer, which I've read top to bottom. I've also read the official docs top to bottom (1, 2), and none of them mention that apps would not show up in the list.

It states:

This is only intended for use by apps that rely on exact alarms for their core functionality. You should continue using SCHEDULE_EXACT_ALARM if your app needs exact alarms for a secondary feature that users may or may not use within your app.

I am more interested in knowing what, exectly, this permission is used for, here. It looks like it should allow to remove the notification, if I am reading this docs correctly.

You can always look at the code. The permission is used to reschedule the websocket reconnection when it fails in the background. If you use JSON stream, then you are not even asked for this permission.

@HappyLer:

I know expectations of users in open source developers is a sensitive topic and it is not my intention to discredit you here. [...] highly concerning when $LLM is used in such a way during development.[...] never fully trust $LLM when developing a piece of software that is used by other people.

I appreciate that you phrased it this way. The fact of the matter is that LLMs are here to stay, and it'll take some getting used to for everyone. ChatGPT and Cursor lie to you, and so do people. Just look at the StackOverflow link that @User-green posted, or look at Reddit and Twitter and such. It's full of people giving wrong answers. They're giving "confidently wrong"-type answers, just like an LLM :-)

My point is: I never blindly trust anything I read on the Internet. The official docs the most trustworthy source, but sadly it doesn't give any answers. I cannot request the USE_EXACT_ALARM permission, because there are policies attached that ntfy doesn't qualify for. ntfy is not an Alarm app. Also, even with the USE_EXACT_ALARM permission, the app doesn't show up in the Alarms list (in the emulator, at least).

So, until somebody finds a solution to this, I will leave this ticket open, and I even may remove the confusing setting entirely.

<!-- gh-comment-id:3707030514 --> @binwiederhier commented on GitHub (Jan 3, 2026): @User-green: > ChatGPL lies to you. It is not normal for app to dispper from any setting screen. How am I meant to revoke permissions otherwise? Also, [docs](https://stackoverflow.com/questions/71031091/android-12-using-schedule-exact-alarm-permission-to-get-show-data-at-specific-t#72183560) I am happy to be corrected. I would love to figure out how to make the app show up in the alams list, but just because you are outraged doesn't mean that we'll be able to figure it out. The link you shared is a StackOverflow answer, which I've read top to bottom. I've also read the official docs top to bottom ([1](https://developer.android.com/reference/android/Manifest.permission#USE_EXACT_ALARM), [2](https://developer.android.com/develop/background-work/services/alarms)), and none of them mention that apps would not show up in the list. It states: > This is only intended for use by apps that rely on exact alarms for their core functionality. You should continue using SCHEDULE_EXACT_ALARM if your app needs exact alarms for a secondary feature that users may or may not use within your app. > I am more interested in knowing what, exectly, this permission is used for, here. It looks like it should allow to remove the notification, if I am reading this docs correctly. You can always look at the code. The permission is used to reschedule the websocket reconnection when it fails in the background. If you use JSON stream, then you are not even asked for this permission. @HappyLer: > I know expectations of users in open source developers is a sensitive topic and it is not my intention to discredit you here. [...] highly concerning when $LLM is used in such a way during development.[...] never fully trust $LLM when developing a piece of software that is used by other people. I appreciate that you phrased it this way. The fact of the matter is that LLMs are here to stay, and it'll take some getting used to for everyone. ChatGPT and Cursor lie to you, and so do people. Just look at the StackOverflow link that @User-green posted, or look at Reddit and Twitter and such. It's full of people giving wrong answers. They're giving "confidently wrong"-type answers, just like an LLM :-) My point is: I never blindly trust anything I read on the Internet. The official docs the most trustworthy source, but sadly it doesn't give any answers. I cannot request the `USE_EXACT_ALARM` permission, because there are policies attached that ntfy doesn't qualify for. ntfy is not an Alarm app. Also, even with the `USE_EXACT_ALARM` permission, the app doesn't show up in the Alarms list (in the emulator, at least). So, until somebody finds a solution to this, I will leave this ticket open, and I even may remove the confusing setting entirely.
Author
Owner

@binwiederhier commented on GitHub (Jan 3, 2026):

Here's a little bit of an add-on, some difficult truths for some: Without LLMs/Cursor, I would still not have picked up ntfy Android development again. Android development is the biggest PITA in the world (for me at least). Everything you do has to be looked up on the Internet (random XML settings, how to set insets, what permissions to use, how to make that button green in light mode but not in dark mode, in which location to place some XML file, ....). There is no way to do Android development without StackOverflow and/or LLMs. There are of course Android-pros that may disagree, but compared to writing Go (or even React to an extent), writing Android code is dreadfully dependent on hacks of all kinds. I always say You cannot write Android code on an airplane, but you can write Go -- because without constant Internet research, you're totally lost.

So yes, LLMs are liars and they shouldn't be trusted. But they are also the reason why you're getting new ntfy Android features again. Cursor helps me write the feature, and then I review and refine the code until I completely understand it. It's amazing!

<!-- gh-comment-id:3707035246 --> @binwiederhier commented on GitHub (Jan 3, 2026): Here's a little bit of an add-on, some difficult truths for some: Without LLMs/Cursor, I would still not have picked up ntfy Android development again. Android development is the biggest PITA in the world (for me at least). Everything you do has to be looked up on the Internet (random XML settings, how to set insets, what permissions to use, how to make that button green in light mode but not in dark mode, in which location to place some XML file, ....). There is no way to do Android development without StackOverflow and/or LLMs. There are of course Android-pros that may disagree, but compared to writing Go (or even React to an extent), writing Android code is dreadfully dependent on hacks of all kinds. I always say *You cannot write Android code on an airplane, but you can write Go* -- because without constant Internet research, you're totally lost. So yes, LLMs are liars and they shouldn't be trusted. But they are also the reason why you're getting new ntfy Android features again. Cursor helps me write the feature, and then I review and refine the code until I completely understand it. It's amazing!
Author
Owner

@wunter8 commented on GitHub (Jan 3, 2026):

I'm the one who added the setting and code for the exact alarm stuff. And no AI was used in that process.

While I was working on the code, I went to that settings screen multiple times and added the permission, revoked the permission, and tried to thoroughly test that everything was working correctly. ntfy definitely appeared on that list during my testing.

However, ntfy doesn't appear in the list of apps for the exact alarm permission on my personal device right now, either. So there's definitely something messed up. I just haven't taken the time to troubleshoot the issue yet.

<!-- gh-comment-id:3707077422 --> @wunter8 commented on GitHub (Jan 3, 2026): I'm the one who added the setting and code for the exact alarm stuff. And no AI was used in that process. While I was working on the code, I went to that settings screen multiple times and added the permission, revoked the permission, and tried to thoroughly test that everything was working correctly. ntfy definitely appeared on that list during my testing. However, ntfy doesn't appear in the list of apps for the exact alarm permission on my personal device right now, either. So there's definitely something messed up. I just haven't taken the time to troubleshoot the issue yet.
Author
Owner

@BalkanMadman commented on GitHub (Jan 3, 2026):

On that note, is restoring the connection using the alarms even the right way to do it? I'm by no means an Android developer but perhaps there's a more suitable way to detect/restore network connections?

<!-- gh-comment-id:3707095377 --> @BalkanMadman commented on GitHub (Jan 3, 2026): On that note, is restoring the connection using the alarms even the right way to do it? I'm by no means an Android developer but perhaps there's a more suitable way to detect/restore network connections?
Author
Owner

@wunter8 commented on GitHub (Jan 3, 2026):

Using exact alarms here would be the most reliable way to reconnect the websocket. "Exact" in this case means we can specify exactly when the background connection retries. If we didn't use this permission, we could schedule a background process to reconnect the websocket and Android would get to it "at some point" (which can vary greatly based on doze mode and other things).

<!-- gh-comment-id:3707113747 --> @wunter8 commented on GitHub (Jan 3, 2026): Using exact alarms here would be the most reliable way to reconnect the websocket. "Exact" in this case means we can specify exactly when the background connection retries. If we didn't use this permission, we could schedule a background process to reconnect the websocket and Android would get to it "at some point" (which can vary greatly based on doze mode and other things).
Author
Owner

@binwiederhier commented on GitHub (Jan 3, 2026):

On a fresh install it's there:

Image

Once I accept the "Allow background usage" through the ntfy banner, it's not there anymore:

Image

You know how I found out about this behavior? ChatGPT (https://chatgpt.com/share/6959428d-739c-800d-9666-002886e5b25d). Amazing. This is undocumented behavior.

Once you revoke the background permission again and then force stop and restart the app, ntfy shows up in the Alarms list again.

I'll do this: I will hide the menu icon if background usage is allowed, so that it won't confuse people.

<!-- gh-comment-id:3707174262 --> @binwiederhier commented on GitHub (Jan 3, 2026): On a fresh install it's there: <img width="200" alt="Image" src="https://github.com/user-attachments/assets/394f3fd2-1250-40a8-835e-abeec1799b77" /> Once I accept the "Allow background usage" through the ntfy banner, it's not there anymore: <img width="200" alt="Image" src="https://github.com/user-attachments/assets/5405fc99-4d32-4a51-98ef-a29a00ffe596" /> You know how I found out about this behavior? ChatGPT (https://chatgpt.com/share/6959428d-739c-800d-9666-002886e5b25d). Amazing. This is undocumented behavior. Once you revoke the background permission again and then force stop and restart the app, ntfy shows up in the Alarms list again. I'll do this: I will hide the menu icon if background usage is allowed, so that it won't confuse people.
Author
Owner

@wunter8 commented on GitHub (Jan 3, 2026):

Hey! Great find! I just confirmed on my phone that if I chang battery restrictions from "unrestricted" to "optimized", ntfy then starts to appear in the Alarms and Reminders list

<!-- gh-comment-id:3707181351 --> @wunter8 commented on GitHub (Jan 3, 2026): Hey! Great find! I just confirmed on my phone that if I chang battery restrictions from "unrestricted" to "optimized", ntfy then starts to appear in the Alarms and Reminders list
Author
Owner

@binwiederhier commented on GitHub (Jan 3, 2026):

Turns out that when you "allow background usage", canScheduleExactAlarms() returns true as well, so it's not even necessary to ask the user separately.

<!-- gh-comment-id:3707189024 --> @binwiederhier commented on GitHub (Jan 3, 2026): Turns out that when you "allow background usage", `canScheduleExactAlarms()` returns `true` as well, so it's not even necessary to ask the user separately.
Author
Owner

@wunter8 commented on GitHub (Jan 3, 2026):

Oh! Good to know

<!-- gh-comment-id:3707190384 --> @wunter8 commented on GitHub (Jan 3, 2026): Oh! Good to know
Author
Owner

@binwiederhier commented on GitHub (Jan 3, 2026):

Done, will be in 1.22.x (github.com/binwiederhier/ntfy-android@50d3e9b038)

<!-- gh-comment-id:3707193115 --> @binwiederhier commented on GitHub (Jan 3, 2026): Done, will be in 1.22.x (https://github.com/binwiederhier/ntfy-android/commit/50d3e9b038e2426f8ab92e3e0c9baafc67bce428)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#1026
No description provided.