File: ProvisioningException.java

package info (click to toggle)
android-platform-frameworks-base 1%3A14~beta1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 326,092 kB
  • sloc: java: 2,032,373; xml: 343,016; cpp: 304,181; python: 3,683; ansic: 2,090; sh: 1,871; makefile: 117; sed: 19
file content (143 lines) | stat: -rw-r--r-- 5,216 bytes parent folder | download | duplicates (2)
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;
    }
}