blob: 5580619033a65742d14a0953d7e06863d819dddb [file] [log] [blame]
Alan Viverette3da604b2020-06-10 18:34:39 +00001/*
2 * Copyright (C) 2016 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 */
16package android.bluetooth;
17
18import android.os.Parcel;
19import android.os.ParcelUuid;
20import android.os.Parcelable;
21
22import java.util.UUID;
23
24/**
25 * Represents a Bluetooth GATT Included Service
26 *
27 * @hide
28 */
29public class BluetoothGattIncludedService implements Parcelable {
30
31 /**
32 * The UUID of this service.
33 */
34 protected UUID mUuid;
35
36 /**
37 * Instance ID for this service.
38 */
39 protected int mInstanceId;
40
41 /**
42 * Service type (Primary/Secondary).
43 */
44 protected int mServiceType;
45
46 /**
47 * Create a new BluetoothGattIncludedService
48 */
49 public BluetoothGattIncludedService(UUID uuid, int instanceId, int serviceType) {
50 mUuid = uuid;
51 mInstanceId = instanceId;
52 mServiceType = serviceType;
53 }
54
55 @Override
56 public int describeContents() {
57 return 0;
58 }
59
60 @Override
61 public void writeToParcel(Parcel out, int flags) {
62 out.writeParcelable(new ParcelUuid(mUuid), 0);
63 out.writeInt(mInstanceId);
64 out.writeInt(mServiceType);
65 }
66
67 public static final @android.annotation.NonNull Parcelable.Creator<BluetoothGattIncludedService> CREATOR =
68 new Parcelable.Creator<BluetoothGattIncludedService>() {
69 public BluetoothGattIncludedService createFromParcel(Parcel in) {
70 return new BluetoothGattIncludedService(in);
71 }
72
73 public BluetoothGattIncludedService[] newArray(int size) {
74 return new BluetoothGattIncludedService[size];
75 }
76 };
77
78 private BluetoothGattIncludedService(Parcel in) {
79 mUuid = ((ParcelUuid) in.readParcelable(null)).getUuid();
80 mInstanceId = in.readInt();
81 mServiceType = in.readInt();
82 }
83
84 /**
85 * Returns the UUID of this service
86 *
87 * @return UUID of this service
88 */
89 public UUID getUuid() {
90 return mUuid;
91 }
92
93 /**
94 * Returns the instance ID for this service
95 *
96 * <p>If a remote device offers multiple services with the same UUID
97 * (ex. multiple battery services for different batteries), the instance
98 * ID is used to distuinguish services.
99 *
100 * @return Instance ID of this service
101 */
102 public int getInstanceId() {
103 return mInstanceId;
104 }
105
106 /**
107 * Get the type of this service (primary/secondary)
108 */
109 public int getType() {
110 return mServiceType;
111 }
112}