This page is outdated.
For the alarms in SaA version 20250818, 12 columns exist (+1 for the ID of each alarm), but only 10 are defined in the documentation (those two columns being generic_extension and captcha).
It would be really nice to have at least some documentation about what column is what (or at least the type of each column.)
Thanks in advance
Also, the page says “Alarm content provider allows all provider operations.” but when actually trying to use writing operations, it says the following: Permission Denial: writing com.urbandroid.sleep.alarmclock.AlarmProvider uri content://com.urbandroid.sleep.alarmclock/alarm from pid=xxx, uid=xxx requires com.urbandroid.sleep.WRITE, or grantUriPermission()
When looking at the manifest of the app, com.urbandroid.sleep.WRITE
is a signature permission and only given to apps signed with the same key as SaA.
The best way to deal with this would be to change the level to dangerous (like com.urbandroid.sleep.READ
) which would mean apps could also really CRUD alarms without being limited by AlarmClock.ACTION_SET_ALARM
(which only enables alarms on different weekdays).
The other way would be to just update the docs to have the actual behavior be described, even though I really don’t like being limited in my ability to control my alarms from my app.
And finally, it would be nice for com.urbandroid.sleep.alarmclock.AlarmExtendedConfig
to be added to the page (or at least the actual types of the fields contained by the object). This could help clear out ambiguity coming from Java object deserializers.
EDIT: Another way would be to add a menu in the “Automation” section of the app. It would enable the user to add a list of trusted packages for which the app would simply use grantUriPermission()
so that it could access the provider. This is (to me) just a more complicated and less secure way to give write access to the provider than the use of dangerous permissions but I think it is still notable enough for me to add it here.