Class ShadowDevicePolicyManager

java.lang.Object
org.robolectric.shadows.ShadowDevicePolicyManager

@Implements(value=android.app.admin.DevicePolicyManager.class, looseSignatures=true) public class ShadowDevicePolicyManager extends Object
  • Constructor Details

    • ShadowDevicePolicyManager

      public ShadowDevicePolicyManager()
  • Method Details

    • __constructor__

      @Implementation(maxSdk=23) protected void __constructor__(Context context, Handler handler)
    • __constructor__

      @Implementation(minSdk=24, maxSdk=25) protected void __constructor__(Context context, boolean parentInstance)
    • __constructor__

      @Implementation(minSdk=26) protected void __constructor__(Context context, IDevicePolicyManager service)
    • isDeviceOwnerApp

      @Implementation protected boolean isDeviceOwnerApp(String packageName)
    • isProfileOwnerApp

      @Implementation(minSdk=21) protected boolean isProfileOwnerApp(String packageName)
    • isAdminActive

      @Implementation protected boolean isAdminActive(ComponentName who)
    • getActiveAdmins

      @Implementation protected List<ComponentName> getActiveAdmins()
    • addUserRestriction

      @Implementation(minSdk=21) protected void addUserRestriction(ComponentName admin, String key)
    • clearUserRestriction

      @Implementation(minSdk=21) protected void clearUserRestriction(ComponentName admin, String key)
    • setApplicationHidden

      @Implementation(minSdk=21) protected boolean setApplicationHidden(ComponentName admin, String packageName, boolean hidden)
    • failSetApplicationHiddenFor

      public void failSetApplicationHiddenFor(Collection<String> packagesToFail)
      Parameters:
      packagesToFail - collection of package names or null to clear the packages.
    • isApplicationHidden

      @Implementation(minSdk=21) protected boolean isApplicationHidden(ComponentName admin, String packageName)
    • wasPackageEverHidden

      public boolean wasPackageEverHidden(String packageName)
      Returns true if the given packageName was ever hidden.
    • enableSystemApp

      @Implementation(minSdk=21) protected void enableSystemApp(ComponentName admin, String packageName)
    • wasSystemAppEnabled

      public boolean wasSystemAppEnabled(String packageName)
      Returns true if the given packageName was a system app and was enabled.
    • setUninstallBlocked

      @Implementation(minSdk=21) protected void setUninstallBlocked(ComponentName admin, String packageName, boolean uninstallBlocked)
    • isUninstallBlocked

      @Implementation(minSdk=21) protected boolean isUninstallBlocked(ComponentName admin, String packageName)
    • setIsUniqueDeviceAttestationSupported

      public void setIsUniqueDeviceAttestationSupported(boolean supported)
    • isUniqueDeviceAttestationSupported

      @Implementation(minSdk=30) protected boolean isUniqueDeviceAttestationSupported()
    • setIsUsbDataSignalingEnabled

      public void setIsUsbDataSignalingEnabled(boolean isEnabled)
      Sets USB signaling device restriction.
    • isUsbDataSignalingEnabled

      @Implementation(minSdk=31) protected boolean isUsbDataSignalingEnabled()
    • getDeviceOwner

      @Implementation protected String getDeviceOwner()
      See Also:
    • isDeviceManaged

      @Implementation(minSdk=24) public boolean isDeviceManaged()
      See Also:
    • getProfileOwner

      @Implementation(minSdk=21) protected ComponentName getProfileOwner()
      See Also:
    • getProfileOwnerNameAsUser

      @Implementation(minSdk=21) protected String getProfileOwnerNameAsUser(int userId)
      Returns the human-readable name of the profile owner for a user if set using setProfileOwnerName(int, java.lang.String), otherwise null.
    • transferOwnership

      @Implementation(minSdk=28) protected void transferOwnership(ComponentName admin, ComponentName target, PersistableBundle bundle)
    • getTransferOwnershipBundle

      @Implementation(minSdk=28) protected PersistableBundle getTransferOwnershipBundle()
    • setDeviceOwner

      @Implementation(minSdk=24, maxSdk=32) public boolean setDeviceOwner(ComponentName admin)
      Sets the admin as active admin and device owner.
      See Also:
    • setProfileOwner

      public void setProfileOwner(ComponentName admin)
      Sets the admin as active admin and profile owner.
      See Also:
    • setProfileOwnerName

      public void setProfileOwnerName(int userId, String name)
    • setActiveAdmin

      public void setActiveAdmin(ComponentName componentName)
      Sets the given componentName as one of the active admins.
    • removeActiveAdmin

      @Implementation protected void removeActiveAdmin(ComponentName admin)
    • clearProfileOwner

      @Implementation(minSdk=21) protected void clearProfileOwner(ComponentName admin)
    • getApplicationRestrictions

      @Implementation(minSdk=21) protected Bundle getApplicationRestrictions(ComponentName admin, String packageName)
    • getApplicationRestrictions

      public Bundle getApplicationRestrictions(String packageName)
      Returns all application restrictions of the packageName in a Bundle.
    • setApplicationRestrictions

      @Implementation(minSdk=21) protected void setApplicationRestrictions(ComponentName admin, String packageName, Bundle applicationRestrictions)
    • setApplicationRestrictions

      public void setApplicationRestrictions(String packageName, Bundle applicationRestrictions)
      Sets the application restrictions of the packageName.

      The new applicationRestrictions always completely overwrites any existing ones.

    • setDelegatedScopes

      @Implementation(minSdk=26) protected void setDelegatedScopes(ComponentName admin, String delegatePackage, List<String> scopes)
    • setAccountManagementDisabled

      @Implementation(minSdk=21) protected void setAccountManagementDisabled(ComponentName admin, String accountType, boolean disabled)
    • getAccountTypesWithManagementDisabled

      @Implementation(minSdk=21) protected String[] getAccountTypesWithManagementDisabled()
    • setOrganizationName

      @Implementation(minSdk=24) protected void setOrganizationName(ComponentName admin, CharSequence name)
      Sets organization name.

      The API can only be called by profile owner since Android N and can be called by both of profile owner and device owner since Android O.

    • setPackagesSuspended

      @Implementation(minSdk=24) protected String[] setPackagesSuspended(ComponentName admin, String[] packageNames, boolean suspended)
    • isPackageSuspended

      @Implementation(minSdk=24) protected boolean isPackageSuspended(ComponentName admin, String packageName) throws PackageManager.NameNotFoundException
      Throws:
      PackageManager.NameNotFoundException
    • setOrganizationColor

      @Implementation(minSdk=24) protected void setOrganizationColor(ComponentName admin, int color)
    • getOrganizationName

      @Implementation(minSdk=24) protected CharSequence getOrganizationName(ComponentName admin)
      Returns organization name.

      The API can only be called by profile owner since Android N.

      Android framework has a hidden API for getting the organization name for device owner since Android O. This method, however, is extended to return the organization name for device owners too to make testing of setOrganizationName(ComponentName, CharSequence) easier for device owner cases.

    • getOrganizationColor

      @Implementation(minSdk=24) protected int getOrganizationColor(ComponentName admin)
    • setAutoTimeEnabled

      @Implementation(minSdk=30) protected void setAutoTimeEnabled(ComponentName admin, boolean enabled)
    • getAutoTimeEnabled

      @Implementation(minSdk=30) protected boolean getAutoTimeEnabled(ComponentName admin)
    • setAutoTimeRequired

      @Implementation(minSdk=21) protected void setAutoTimeRequired(ComponentName admin, boolean required)
    • getAutoTimeRequired

      @Implementation(minSdk=21) protected boolean getAutoTimeRequired()
    • setAutoTimeZoneEnabled

      @Implementation(minSdk=30) protected void setAutoTimeZoneEnabled(ComponentName admin, boolean enabled)
    • getAutoTimeZoneEnabled

      @Implementation(minSdk=30) protected boolean getAutoTimeZoneEnabled(ComponentName admin)
    • setTimeZone

      @Implementation(minSdk=28) protected boolean setTimeZone(ComponentName admin, String timeZone)
    • getTimeZone

      public String getTimeZone()
      Returns the time zone set by setTimeZone.
    • setPermittedAccessibilityServices

      @Implementation(minSdk=21) protected boolean setPermittedAccessibilityServices(ComponentName admin, List<String> packageNames)
      Sets permitted accessibility services.

      The API can be called by either a profile or device owner.

      This method does not check already enabled non-system accessibility services, so will always set the restriction and return true.

    • getPermittedAccessibilityServices

      @Implementation(minSdk=21) protected List<String> getPermittedAccessibilityServices(ComponentName admin)
    • setPermittedInputMethods

      @Implementation(minSdk=21) protected boolean setPermittedInputMethods(ComponentName admin, List<String> packageNames)
      Sets permitted input methods.

      The API can be called by either a profile or device owner.

      This method does not check already enabled non-system input methods, so will always set the restriction and return true.

    • getPermittedInputMethods

      @Implementation(minSdk=21) protected List<String> getPermittedInputMethods(ComponentName admin)
    • getStorageEncryptionStatus

      @Implementation protected int getStorageEncryptionStatus()
      Returns:
      the previously set status; default is DevicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED
      See Also:
    • setStorageEncryptionStatus

      public void setStorageEncryptionStatus(int status)
    • setStorageEncryption

      @Implementation protected int setStorageEncryption(ComponentName admin, boolean encrypt)
    • getStorageEncryption

      @Implementation protected boolean getStorageEncryption(ComponentName admin)
    • getPermissionGrantState

      @Implementation(minSdk=23) protected int getPermissionGrantState(ComponentName admin, String packageName, String permission)
    • isPermissionGranted

      public boolean isPermissionGranted(String packageName, String permission)
    • setPermissionGrantState

      @Implementation(minSdk=23) protected boolean setPermissionGrantState(ComponentName admin, String packageName, String permission, int grantState)
    • lockNow

      @Implementation protected void lockNow()
    • wipeData

      @Implementation protected void wipeData(int flags)
    • getWipeCalledTimes

      public long getWipeCalledTimes()
    • setPasswordQuality

      @Implementation protected void setPasswordQuality(ComponentName admin, int quality)
    • getPasswordQuality

      @Implementation protected int getPasswordQuality(ComponentName admin)
    • resetPassword

      @Implementation protected boolean resetPassword(String password, int flags)
    • resetPasswordWithToken

      @Implementation(minSdk=26) protected boolean resetPasswordWithToken(ComponentName admin, String password, byte[] token, int flags)
    • isResetPasswordTokenActive

      @Implementation(minSdk=26) protected boolean isResetPasswordTokenActive(ComponentName admin)
    • setResetPasswordToken

      @Implementation(minSdk=26) protected boolean setResetPasswordToken(ComponentName admin, byte[] token)
    • setPasswordMinimumLength

      @Implementation protected void setPasswordMinimumLength(ComponentName admin, int length)
    • getPasswordMinimumLength

      @Implementation protected int getPasswordMinimumLength(ComponentName admin)
    • setPasswordMinimumLetters

      @Implementation protected void setPasswordMinimumLetters(ComponentName admin, int length)
    • getPasswordMinimumLetters

      @Implementation protected int getPasswordMinimumLetters(ComponentName admin)
    • setPasswordMinimumLowerCase

      @Implementation protected void setPasswordMinimumLowerCase(ComponentName admin, int length)
    • getPasswordMinimumLowerCase

      @Implementation protected int getPasswordMinimumLowerCase(ComponentName admin)
    • setPasswordMinimumUpperCase

      @Implementation protected void setPasswordMinimumUpperCase(ComponentName admin, int length)
    • getPasswordMinimumUpperCase

      @Implementation protected int getPasswordMinimumUpperCase(ComponentName admin)
    • setPasswordMinimumNonLetter

      @Implementation protected void setPasswordMinimumNonLetter(ComponentName admin, int length)
    • getPasswordMinimumNonLetter

      @Implementation protected int getPasswordMinimumNonLetter(ComponentName admin)
    • setPasswordMinimumNumeric

      @Implementation protected void setPasswordMinimumNumeric(ComponentName admin, int length)
    • getPasswordMinimumNumeric

      @Implementation protected int getPasswordMinimumNumeric(ComponentName admin)
    • setPasswordMinimumSymbols

      @Implementation protected void setPasswordMinimumSymbols(ComponentName admin, int length)
    • getPasswordMinimumSymbols

      @Implementation protected int getPasswordMinimumSymbols(ComponentName admin)
    • setMaximumFailedPasswordsForWipe

      @Implementation protected void setMaximumFailedPasswordsForWipe(ComponentName admin, int num)
    • getMaximumFailedPasswordsForWipe

      @Implementation protected int getMaximumFailedPasswordsForWipe(ComponentName admin)
    • setCameraDisabled

      @Implementation protected void setCameraDisabled(ComponentName admin, boolean disabled)
    • getCameraDisabled

      @Implementation protected boolean getCameraDisabled(ComponentName admin)
    • setPasswordExpirationTimeout

      @Implementation protected void setPasswordExpirationTimeout(ComponentName admin, long timeout)
    • getPasswordExpirationTimeout

      @Implementation protected long getPasswordExpirationTimeout(ComponentName admin)
    • setPasswordExpiration

      public void setPasswordExpiration(ComponentName admin, long timeout)
      Sets the password expiration time for a particular admin.
      Parameters:
      admin - which DeviceAdminReceiver this request is associated with.
      timeout - the password expiration time, in milliseconds since epoch.
    • getPasswordExpiration

      @Implementation protected long getPasswordExpiration(ComponentName admin)
    • setMaximumTimeToLock

      @Implementation protected void setMaximumTimeToLock(ComponentName admin, long timeMs)
    • getMaximumTimeToLock

      @Implementation protected long getMaximumTimeToLock(ComponentName admin)
    • setPasswordHistoryLength

      @Implementation protected void setPasswordHistoryLength(ComponentName admin, int length)
    • getPasswordHistoryLength

      @Implementation protected int getPasswordHistoryLength(ComponentName admin)
    • setActivePasswordSufficient

      public void setActivePasswordSufficient(boolean sufficient)
      Sets if the password meets the current requirements.
      Parameters:
      sufficient - indicates the password meets the current requirements
    • isActivePasswordSufficient

      @Implementation protected boolean isActivePasswordSufficient()
    • setDeviceProvisioned

      public void setDeviceProvisioned(boolean isProvisioned)
      Sets whether the device is provisioned.
    • isDeviceProvisioned

      @Implementation(minSdk=26) protected boolean isDeviceProvisioned()
    • setDeviceProvisioningConfigApplied

      @Implementation(minSdk=26) protected void setDeviceProvisioningConfigApplied()
    • isDeviceProvisioningConfigApplied

      @Implementation(minSdk=26) protected boolean isDeviceProvisioningConfigApplied()
    • setPasswordComplexity

      public void setPasswordComplexity(int passwordComplexity)
      Sets the password complexity.
    • getPasswordComplexity

      @Implementation(minSdk=29) protected int getPasswordComplexity()
    • getLastSetPassword

      public String getLastSetPassword()
    • activateResetToken

      public boolean activateResetToken(ComponentName admin)
      Activates reset token for given admin.
      Parameters:
      admin - Which DeviceAdminReceiver this request is associated with.
      Returns:
      if the activation state changed.
      Throws:
      IllegalArgumentException - if there is no token set for this admin.
    • addPersistentPreferredActivity

      @Implementation(minSdk=21) protected void addPersistentPreferredActivity(ComponentName admin, IntentFilter filter, ComponentName activity)
    • clearPackagePersistentPreferredActivities

      @Implementation(minSdk=21) protected void clearPackagePersistentPreferredActivities(ComponentName admin, String packageName)
    • setKeyguardDisabledFeatures

      @Implementation protected void setKeyguardDisabledFeatures(ComponentName admin, int which)
    • getKeyguardDisabledFeatures

      @Implementation protected int getKeyguardDisabledFeatures(ComponentName admin)
    • setUserProvisioningState

      public void setUserProvisioningState(int state)
      Sets the user provisioning state.
      Parameters:
      state - to store provisioning state
    • setUserProvisioningState

      @Implementation(minSdk=33) protected void setUserProvisioningState(int state, UserHandle userHandle)
    • getUserProvisioningState

      @Implementation(minSdk=24) protected int getUserProvisioningState()
      Returns the provisioning state set in setUserProvisioningState(int), or DevicePolicyManager.STATE_USER_UNMANAGED if none is set.
    • hasGrantedPolicy

      @Implementation protected boolean hasGrantedPolicy(ComponentName admin, int usesPolicy)
    • getLockTaskFeatures

      @Implementation(minSdk=28) protected int getLockTaskFeatures(ComponentName admin)
    • setLockTaskFeatures

      @Implementation(minSdk=28) protected void setLockTaskFeatures(ComponentName admin, int flags)
    • setLockTaskPackages

      @Implementation(minSdk=21) protected void setLockTaskPackages(ComponentName admin, String[] packages)
    • getLockTaskPackages

      @Implementation(minSdk=21) protected String[] getLockTaskPackages(ComponentName admin)
    • isLockTaskPermitted

      @Implementation(minSdk=21) protected boolean isLockTaskPermitted(String pkg)
    • setAffiliationIds

      @Implementation(minSdk=26) protected void setAffiliationIds(ComponentName admin, Set<String> ids)
    • getAffiliationIds

      @Implementation(minSdk=26) protected Set<String> getAffiliationIds(ComponentName admin)
    • setPermissionPolicy

      @Implementation(minSdk=23) protected void setPermissionPolicy(ComponentName admin, int policy)
    • getPermissionPolicy

      @Implementation(minSdk=23) protected int getPermissionPolicy(ComponentName admin)
    • grantPolicy

      public void grantPolicy(ComponentName admin, int usesPolicy)
      Grants a particular device policy for an active ComponentName.
      Parameters:
      admin - the ComponentName which DeviceAdminReceiver this request is associated with. Must be an active administrator, or an exception will be thrown. This value must never be null.
      usesPolicy - the uses-policy to check
    • getSystemUpdatePolicy

      @Implementation(minSdk=23) protected SystemUpdatePolicy getSystemUpdatePolicy()
    • setSystemUpdatePolicy

      @Implementation(minSdk=23) protected void setSystemUpdatePolicy(ComponentName admin, SystemUpdatePolicy policy)
    • setSystemUpdatePolicy

      public void setSystemUpdatePolicy(SystemUpdatePolicy policy)
      Sets the system update policy.
      See Also:
    • setBindDeviceAdminTargetUsers

      public void setBindDeviceAdminTargetUsers(List<UserHandle> bindDeviceAdminTargetUsers)
      See Also:
    • getBindDeviceAdminTargetUsers

      @Implementation(minSdk=26) protected List<UserHandle> getBindDeviceAdminTargetUsers(ComponentName admin)
      See Also:
    • bindDeviceAdminServiceAsUser

      @Implementation(minSdk=26) protected boolean bindDeviceAdminServiceAsUser(ComponentName admin, Intent serviceIntent, ServiceConnection conn, int flags, UserHandle targetUser)
      Bind to the same package in another user.

      This validates that the targetUser is one from getBindDeviceAdminTargetUsers(ComponentName) but does not actually bind to a different user, instead binding to the same user.

      It also does not validate the service being bound to.

    • setShortSupportMessage

      @Implementation(minSdk=24) protected void setShortSupportMessage(ComponentName admin, CharSequence message)
    • getShortSupportMessage

      @Implementation(minSdk=24) protected CharSequence getShortSupportMessage(ComponentName admin)
    • setLongSupportMessage

      @Implementation(minSdk=24) protected void setLongSupportMessage(ComponentName admin, CharSequence message)
    • getLongSupportMessage

      @Implementation(minSdk=24) protected CharSequence getLongSupportMessage(ComponentName admin)
    • setOrganizationOwnedDeviceWithManagedProfile

      public void setOrganizationOwnedDeviceWithManagedProfile(boolean value)
      Sets the return value of the DevicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile() method (only for Android R+).
    • isOrganizationOwnedDeviceWithManagedProfile

      @Implementation(minSdk=30) protected boolean isOrganizationOwnedDeviceWithManagedProfile()
      Returns the value stored using in the shadow, while the real method returns the value store on the device.

      The value can be set by setOrganizationOwnedDeviceWithManagedProfile(boolean) and is false by default.

    • getNearbyNotificationStreamingPolicy

      @Implementation(minSdk=31) protected int getNearbyNotificationStreamingPolicy()
    • setNearbyNotificationStreamingPolicy

      @Implementation(minSdk=31) protected void setNearbyNotificationStreamingPolicy(int policy)
    • getNearbyAppStreamingPolicy

      @Implementation(minSdk=31) protected int getNearbyAppStreamingPolicy()
    • setNearbyAppStreamingPolicy

      @Implementation(minSdk=31) protected void setNearbyAppStreamingPolicy(int policy)
    • getDevicePolicyManagementRoleHolderPackage

      @Implementation(minSdk=33) protected String getDevicePolicyManagementRoleHolderPackage()
    • setDevicePolicyManagementRoleHolderPackage

      public void setDevicePolicyManagementRoleHolderPackage(String packageName)
      Sets the package name of the device policy management role holder.
      See Also:
    • finalizeWorkProfileProvisioning

      @Implementation(minSdk=33) protected void finalizeWorkProfileProvisioning(UserHandle managedProfileUser, Account migratedAccount)
    • isWorkProfileProvisioningFinalized

      public boolean isWorkProfileProvisioningFinalized(UserHandle userHandle, Account migratedAccount)
      Returns if finalizeWorkProfileProvisioning(UserHandle, Account) was called with the provided parameters.
    • getPolicyManagedProfiles

      @Implementation(minSdk=33) protected List<UserHandle> getPolicyManagedProfiles(UserHandle userHandle)
      Returns the managed profiles set in setPolicyManagedProfiles(List). This value does not take the user handle parameter into account.
    • setPolicyManagedProfiles

      public void setPolicyManagedProfiles(List<UserHandle> policyManagedProfiles)
      Sets the value returned by getPolicyManagedProfiles(UserHandle).
    • getUserProvisioningStateForUser

      public int getUserProvisioningStateForUser(int userId)
      Returns the user provisioning state set by setUserProvisioningState(int, UserHandle), or DevicePolicyManager.STATE_USER_UNMANAGED if none is set.
    • getDevicePolicyState

      @Implementation(minSdk=34) protected Object getDevicePolicyState()
    • setDevicePolicyState

      public void setDevicePolicyState(Object policyState)
      Set the DevicePolicyState which can be constructed from DevicePolicyStateBuilder