diff options
Diffstat (limited to 'framework-s/java')
-rw-r--r-- | framework-s/java/android/app/role/IRoleManager.aidl | 2 | ||||
-rw-r--r-- | framework-s/java/android/app/role/RoleManager.java | 22 |
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 |