144 lines
5.1 KiB
Java
144 lines
5.1 KiB
Java
/*
|
|
* 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;
|
|
}
|
|
}
|