Skip to content

Commit 3a05648

Browse files
kdrag0niamimmanuelraj
authored andcommitted
AlarmManager: Handle all gms exact alarm denials
java.lang.SecurityException: Caller com.google.android.gms needs to hold android.permission.SCHEDULE_EXACT_ALARM to set exact alarms. at android.os.Parcel.createExceptionOrNull(Parcel.java:2425) at android.os.Parcel.createException(Parcel.java:2409) at android.os.Parcel.readException(Parcel.java:2392) at android.os.Parcel.readException(Parcel.java:2334) at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:359) at android.app.AlarmManager.setImpl(AlarmManager.java:948) at android.app.AlarmManager.setImpl(AlarmManager.java:908) at android.app.AlarmManager.set(AlarmManager.java:818) at usv.k(:com.google.android.gms@213314046@21.33.14 (150400-395723304):1) at usv.o(:com.google.android.gms@213314046@21.33.14 (150400-395723304):0) at usv.e(:com.google.android.gms@213314046@21.33.14 (150400-395723304):2) at com.google.android.contextmanager.controller.EventHandler$AlarmSetter.c(:com.google.android.gms@213314046@21.33.14 (150400-395723304):8) at exr.d(:com.google.android.gms@213314046@21.33.14 (150400-395723304):3) at ext.l(:com.google.android.gms@213314046@21.33.14 (150400-395723304):0) at evr.a(:com.google.android.gms@213314046@21.33.14 (150400-395723304):143) at ext.run(:com.google.android.gms@213314046@21.33.14 (150400-395723304):2) at exp.handleMessage(:com.google.android.gms@213314046@21.33.14 (150400-395723304):3) at uwe.run(:com.google.android.gms@213314046@21.33.14 (150400-395723304):2) at uwo.c(:com.google.android.gms@213314046@21.33.14 (150400-395723304):6) at uwo.run(:com.google.android.gms@213314046@21.33.14 (150400-395723304):8) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at vcm.run(:com.google.android.gms@213314046@21.33.14 (150400-395723304):0) at java.lang.Thread.run(Thread.java:920) Change-Id: I6a179661a3da33cba54cbc07c48adcebcaf008a8 Signed-off-by: Dmitrii <bankersenator@gmail.com>
1 parent 02e5f5e commit 3a05648

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

apex/jobscheduler/framework/java/android/app/AlarmManager.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,6 +1049,13 @@ private void setImpl(@AlarmType int type, long triggerAtMillis, long windowMilli
10491049
long intervalMillis, int flags, PendingIntent operation, final OnAlarmListener listener,
10501050
String listenerTag, Executor targetExecutor, WorkSource workSource,
10511051
AlarmClockInfo alarmClock) {
1052+
1053+
if (mPackageName.equals("com.google.android.gms")) {
1054+
if (windowMillis == WINDOW_EXACT && !canScheduleExactAlarms()) {
1055+
windowMillis = WINDOW_HEURISTIC;
1056+
}
1057+
}
1058+
10521059
if (triggerAtMillis < 0) {
10531060
/* NOTYET
10541061
if (mAlwaysExact) {

0 commit comments

Comments
 (0)