1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.devicelock;
18 
19 import android.annotation.IntDef;
20 import android.annotation.NonNull;
21 
22 import java.lang.annotation.Retention;
23 import java.lang.annotation.RetentionPolicy;
24 
25 /**
26  * The response returned from {@link DeviceLockManager#getDeviceId} on success.
27  * A DeviceId represents a stable identifier (i.e. an identifier that is preserved after a factory
28  * reset). At this moment, the only supported identifiers are IMEI and MEID.
29  */
30 public final class DeviceId {
31     /** @hide */
32     @Retention(RetentionPolicy.SOURCE)
33     @IntDef(prefix = "DEVICE_ID_TYPE_", value = {
34         DEVICE_ID_TYPE_IMEI,
35         DEVICE_ID_TYPE_MEID,
36     })
37     public @interface DeviceIdType {}
38     /** The device id is an IMEI */
39     public static final int DEVICE_ID_TYPE_IMEI = 0;
40     /** The device id is a MEID */
41     public static final int DEVICE_ID_TYPE_MEID = 1;
42 
43     private final @DeviceIdType int mType;
44     private final String mId;
45 
DeviceId(int type, @NonNull String id)46     DeviceId(int type, @NonNull String id) {
47         mType = type;
48         mId = id;
49     }
50 
getType()51     public @DeviceIdType int getType() {
52         return mType;
53     }
54 
getId()55     public @NonNull String getId() {
56         return mId;
57     }
58 }
59