1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.app.admin;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.content.pm.PackageManager;
import android.util.AndroidException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Thrown to indicate a failure during {@link DevicePolicyManager#provisionFullyManagedDevice} and
* {@link DevicePolicyManager#createAndProvisionManagedProfile}.
*
* @hide
*
*/
@SystemApi
public class ProvisioningException extends AndroidException {
/**
* Service-specific error code for {@link DevicePolicyManager#provisionFullyManagedDevice} and
* {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates a generic failure.
*/
public static final int ERROR_UNKNOWN = 0;
/**
* Service-specific error code for {@link DevicePolicyManager#provisionFullyManagedDevice} and
* {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates the call to {@link DevicePolicyManager#checkProvisioningPrecondition} returned an
* error code.
*/
public static final int ERROR_PRE_CONDITION_FAILED = 1;
/**
* Service-specific error code for {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates that the profile creation failed.
*/
public static final int ERROR_PROFILE_CREATION_FAILED = 2;
/**
* Service-specific error code for {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates the call to {@link PackageManager#installExistingPackageAsUser} has failed.
*/
public static final int ERROR_ADMIN_PACKAGE_INSTALLATION_FAILED = 3;
/**
* Service-specific error code for {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates that setting the profile owner failed.
*/
public static final int ERROR_SETTING_PROFILE_OWNER_FAILED = 4;
/**
* Service-specific error code for {@link DevicePolicyManager#createAndProvisionManagedProfile}:
* Indicates that starting the newly created profile has failed.
*/
public static final int ERROR_STARTING_PROFILE_FAILED = 5;
/**
* Service-specific error code for {@link DevicePolicyManager#provisionFullyManagedDevice}:
* Indicates that removing the non required apps have failed.
*/
public static final int ERROR_REMOVE_NON_REQUIRED_APPS_FAILED = 6;
/**
* Service-specific error code for {@link DevicePolicyManager#provisionFullyManagedDevice}:
* Indicates that setting the device owner failed.
*/
public static final int ERROR_SET_DEVICE_OWNER_FAILED = 7;
/**
* Service-specific error codes for {@link DevicePolicyManager#createAndProvisionManagedProfile}
* and {@link DevicePolicyManager#provisionFullyManagedDevice} indicating all the errors
* during provisioning.
*
* @hide
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = { "ERROR_" }, value = {
ERROR_UNKNOWN, ERROR_PRE_CONDITION_FAILED,
ERROR_PROFILE_CREATION_FAILED,
ERROR_ADMIN_PACKAGE_INSTALLATION_FAILED,
ERROR_SETTING_PROFILE_OWNER_FAILED,
ERROR_STARTING_PROFILE_FAILED,
ERROR_REMOVE_NON_REQUIRED_APPS_FAILED,
ERROR_SET_DEVICE_OWNER_FAILED
})
public @interface ProvisioningError {}
private final @ProvisioningError int mProvisioningError;
/**
* Constructs a {@link ProvisioningException}.
*
* @param cause the cause
* @param provisioningError the error code
*/
public ProvisioningException(@NonNull Exception cause,
@ProvisioningError int provisioningError) {
this(cause, provisioningError, /* errorMessage= */ null);
}
/**
* Constructs a {@link ProvisioningException}.
*
* @param cause the cause
* @param provisioningError the error code
* @param errorMessage a {@code String} error message that give a more specific
* description of the exception; can be {@code null}
*/
public ProvisioningException(@NonNull Exception cause,
@ProvisioningError int provisioningError,
@Nullable String errorMessage) {
super(errorMessage, cause);
mProvisioningError = provisioningError;
}
/**
* Returns the provisioning error specified at construction time.
*/
public @ProvisioningError int getProvisioningError() {
return mProvisioningError;
}
}
|