From f20d333adacbf0d0876161f739a6e9f9de1de56c Mon Sep 17 00:00:00 2001 From: Varun Shah Date: Tue, 29 Dec 2020 15:24:43 -0800 Subject: [PATCH] DO NOT MERGE: Disable StrictMode VM Policy check. Disable the VM policy violation for intents that contain a content URI but don't have FLAG_GRANT_URI_PERMISSION when scheduling alarms. Fixes: 160426113 Test: atest CalendarProvider2Test Change-Id: If6e4a03609fc3d03dde66bcaa3136b23662ccaeb (cherry picked from commit 224822ecafdf09a3a2cda11d95645f3056ab58dc) --- core/java/android/provider/CalendarContract.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/java/android/provider/CalendarContract.java b/core/java/android/provider/CalendarContract.java index 17fae1cafe62f..5e3f852229b7d 100644 --- a/core/java/android/provider/CalendarContract.java +++ b/core/java/android/provider/CalendarContract.java @@ -39,6 +39,7 @@ import android.database.Cursor; import android.database.DatabaseUtils; import android.net.Uri; import android.os.RemoteException; +import android.os.StrictMode; import android.text.format.DateUtils; import android.text.format.TimeMigrationUtils; import android.util.Log; @@ -2618,7 +2619,13 @@ public final class CalendarContract { intent.setData(ContentUris.withAppendedId(CalendarContract.CONTENT_URI, alarmTime)); intent.putExtra(ALARM_TIME, alarmTime); intent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND); + + // Disable strict mode VM policy violations temporarily for intents that contain a + // content URI but don't have FLAG_GRANT_READ_URI_PERMISSION. + StrictMode.VmPolicy oldVmPolicy = StrictMode.allowVmViolations(); PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0); + StrictMode.setVmPolicy(oldVmPolicy); + manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmTime, pi); }