Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8358,6 +8358,7 @@ package android.permission { public abstract class PermissionControllerService extends android.app.Service { ctor public PermissionControllerService(); method @NonNull @RequiresPermission("android.permission.MANAGE_COMPANION_DEVICES") public String getPrivilegesDescriptionStringForProfile(@NonNull String); method @BinderThread public void onApplyStagedRuntimePermissionBackup(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @NonNull public final android.os.IBinder onBind(android.content.Intent); method @BinderThread public abstract void onCountPermissionApps(@NonNull java.util.List<java.lang.String>, int, @NonNull java.util.function.IntConsumer); core/java/android/permission/IPermissionController.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,7 @@ oneway interface IPermissionController { void grantOrUpgradeDefaultRuntimePermissions(in AndroidFuture callback); void notifyOneTimePermissionSessionTimeout(String packageName); void updateUserSensitiveForApp(int uid, in AndroidFuture callback); void getPrivilegesDescriptionStringForProfile( in String deviceProfileName, in AndroidFuture<String> callback); } core/java/android/permission/PermissionControllerService.java +36 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static com.android.internal.util.Preconditions.checkStringNotEmpty; import android.Manifest; import android.annotation.BinderThread; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.app.Service; import android.app.admin.DevicePolicyManager.PermissionGrantState; Loading Loading @@ -61,6 +62,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; Loading Loading @@ -283,6 +285,22 @@ public abstract class PermissionControllerService extends Service { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Get a user-readable sentence, describing the set of privileges that are to be granted to a * companion app managing a device of the given profile. * * @param deviceProfileName the * {@link android.companion.AssociationRequest.DeviceProfile device profile} name * * @hide */ @SystemApi @RequiresPermission(Manifest.permission.MANAGE_COMPANION_DEVICES) @NonNull public String getPrivilegesDescriptionStringForProfile(@NonNull String deviceProfileName) { throw new AbstractMethodError("Must be overridden in implementing class"); } @Override public final @NonNull IBinder onBind(Intent intent) { return new IPermissionController.Stub() { Loading Loading @@ -517,6 +535,24 @@ public abstract class PermissionControllerService extends Service { PermissionControllerService.this.dump(fd, writer, args); } @Override public void getPrivilegesDescriptionStringForProfile( @NonNull String deviceProfileName, @NonNull AndroidFuture<String> callback) { checkStringNotEmpty(deviceProfileName); Objects.requireNonNull(callback); enforceSomePermissionsGrantedToCaller(Manifest.permission.MANAGE_COMPANION_DEVICES); try { callback.complete(PermissionControllerService .this .getPrivilegesDescriptionStringForProfile(deviceProfileName)); } catch (Throwable t) { callback.completeExceptionally(t); } } }; } } Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8358,6 +8358,7 @@ package android.permission { public abstract class PermissionControllerService extends android.app.Service { ctor public PermissionControllerService(); method @NonNull @RequiresPermission("android.permission.MANAGE_COMPANION_DEVICES") public String getPrivilegesDescriptionStringForProfile(@NonNull String); method @BinderThread public void onApplyStagedRuntimePermissionBackup(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @NonNull public final android.os.IBinder onBind(android.content.Intent); method @BinderThread public abstract void onCountPermissionApps(@NonNull java.util.List<java.lang.String>, int, @NonNull java.util.function.IntConsumer);
core/java/android/permission/IPermissionController.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,7 @@ oneway interface IPermissionController { void grantOrUpgradeDefaultRuntimePermissions(in AndroidFuture callback); void notifyOneTimePermissionSessionTimeout(String packageName); void updateUserSensitiveForApp(int uid, in AndroidFuture callback); void getPrivilegesDescriptionStringForProfile( in String deviceProfileName, in AndroidFuture<String> callback); }
core/java/android/permission/PermissionControllerService.java +36 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static com.android.internal.util.Preconditions.checkStringNotEmpty; import android.Manifest; import android.annotation.BinderThread; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.app.Service; import android.app.admin.DevicePolicyManager.PermissionGrantState; Loading Loading @@ -61,6 +62,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; Loading Loading @@ -283,6 +285,22 @@ public abstract class PermissionControllerService extends Service { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Get a user-readable sentence, describing the set of privileges that are to be granted to a * companion app managing a device of the given profile. * * @param deviceProfileName the * {@link android.companion.AssociationRequest.DeviceProfile device profile} name * * @hide */ @SystemApi @RequiresPermission(Manifest.permission.MANAGE_COMPANION_DEVICES) @NonNull public String getPrivilegesDescriptionStringForProfile(@NonNull String deviceProfileName) { throw new AbstractMethodError("Must be overridden in implementing class"); } @Override public final @NonNull IBinder onBind(Intent intent) { return new IPermissionController.Stub() { Loading Loading @@ -517,6 +535,24 @@ public abstract class PermissionControllerService extends Service { PermissionControllerService.this.dump(fd, writer, args); } @Override public void getPrivilegesDescriptionStringForProfile( @NonNull String deviceProfileName, @NonNull AndroidFuture<String> callback) { checkStringNotEmpty(deviceProfileName); Objects.requireNonNull(callback); enforceSomePermissionsGrantedToCaller(Manifest.permission.MANAGE_COMPANION_DEVICES); try { callback.complete(PermissionControllerService .this .getPrivilegesDescriptionStringForProfile(deviceProfileName)); } catch (Throwable t) { callback.completeExceptionally(t); } } }; } }