summaryrefslogtreecommitdiff
path: root/framework-s/java
diff options
context:
space:
mode:
Diffstat (limited to 'framework-s/java')
-rw-r--r--framework-s/java/android/app/role/IRoleManager.aidl2
-rw-r--r--framework-s/java/android/app/role/RoleManager.java22
2 files changed, 24 insertions, 0 deletions
diff --git a/framework-s/java/android/app/role/IRoleManager.aidl b/framework-s/java/android/app/role/IRoleManager.aidl
index 0aef871e6..522967630 100644
--- a/framework-s/java/android/app/role/IRoleManager.aidl
+++ b/framework-s/java/android/app/role/IRoleManager.aidl
@@ -74,6 +74,8 @@ interface IRoleManager {
String getSmsRoleHolder(int userId);
+ String getEmergencyRoleHolder(int userId);
+
boolean isRoleVisibleAsUser(in String roleName, int userId);
boolean isApplicationVisibleForRoleAsUser(in String roleName, in String packageName,
diff --git a/framework-s/java/android/app/role/RoleManager.java b/framework-s/java/android/app/role/RoleManager.java
index fe27d50f3..4b8c9b388 100644
--- a/framework-s/java/android/app/role/RoleManager.java
+++ b/framework-s/java/android/app/role/RoleManager.java
@@ -975,6 +975,28 @@ public final class RoleManager {
}
/**
+ * Allows getting the role holder for {@link #ROLE_EMERGENCY} without requiring
+ * {@link Manifest.permission#OBSERVE_ROLE_HOLDERS}.
+ *
+ * @param userId the user ID to get the default emergency package for
+ * @return the package name of the default emergency app, or {@code null} if none
+ *
+ * @hide
+ */
+ @FlaggedApi(Flags.FLAG_GET_EMERGENCY_ROLE_HOLDER_API_ENABLED)
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+ @Nullable
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public String getEmergencyRoleHolder(@UserIdInt int userId) {
+ try {
+ return mService.getEmergencyRoleHolder(userId);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Check whether a role should be visible to user.
*
* @param roleName name of the role to check for