This question has probably been asked a thousand times, but please don't mark this as duplicate. I have gone through every question/forum/advice/documentation available online on Alarm manager and Jobscheduler, but I still can't get them to work consistently on specified time. Either the answers on other questions are very old, not applicable anymore, or insufficient.
Use case: Provide notification of next meeting on Calendar; Reminder by user at X time to do something; At X time, get user's location to trigger a service (like home automation, when user is near home, XYZ happens).
What I have tried: Jobscheduler: This works well, except when the app goes in Doze mode. For that I employed Alarm Manager.
AlarmManager: I have tried all the methods one by one, starting with setAlarmClock(), setExactAndAllowWhileIdle(), setExact(). They all work except when the device goes in doze mode.
Major issue is that most of them don't fire even within an hour of the set time (testing on Android Q / 10). This is so inaccurate, how are other apps functioning? For example apps like Calendar, Uber etc.?
I must be missing something.