From 08db23236cf736c0ebb21257b5574a2ce8ff5edd Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Fri, 19 Feb 2021 19:45:21 -0800 Subject: [PATCH] Adding Intent API to navigate to alarm permission page This is needed to provide apps a way to request the user to grant them SCHEDULE_EXACT_ALARM permission Test: atest CtsAlarmManagerTestCases Also, manually: adb shell am start -n android.settings.REQUEST_SCHEDULE_EXACT_ALARM adb shell am start -n android.settings.REQUEST_SCHEDULE_EXACT_ALARM \ -d package:com.android.deskclock Bug: 171306433 Change-Id: I0517e05fe7b9decb29fcc16719d7a534f7e0c0fe --- core/api/current.txt | 1 + core/java/android/provider/Settings.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index e739c12343bfc..7084357220a85 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -35130,6 +35130,7 @@ package android.provider { field public static final String ACTION_QUICK_ACCESS_WALLET_SETTINGS = "android.settings.QUICK_ACCESS_WALLET_SETTINGS"; field public static final String ACTION_QUICK_LAUNCH_SETTINGS = "android.settings.QUICK_LAUNCH_SETTINGS"; field public static final String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"; + field public static final String ACTION_REQUEST_SCHEDULE_EXACT_ALARM = "android.settings.REQUEST_SCHEDULE_EXACT_ALARM"; field public static final String ACTION_REQUEST_SET_AUTOFILL_SERVICE = "android.settings.REQUEST_SET_AUTOFILL_SERVICE"; field public static final String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS"; field public static final String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS"; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index ff10b0caab890..09d0af11a39fe 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -416,6 +416,22 @@ public final class Settings { public static final String ACTION_MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES"; + /** + * Activity Action: Show settings to allow configuration of + * {@link Manifest.permission#SCHEDULE_EXACT_ALARM} permission + * + * Input: Optionally, the Intent's data URI can specify the application package name to + * directly invoke the management GUI specific to the package name. For example + * "package:com.my.app". + *

+ * Output: When a package data uri is passed as input, the activity result is set to + * {@link android.app.Activity#RESULT_OK} if the permission was granted to the app. Otherwise, + * the result is set to {@link android.app.Activity#RESULT_CANCELED}. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_REQUEST_SCHEDULE_EXACT_ALARM = + "android.settings.REQUEST_SCHEDULE_EXACT_ALARM"; + /** * Activity Action: Show settings to allow configuration of cross-profile access for apps *