summaryrefslogtreecommitdiff
path: root/core/java/android/bluetooth/BluetoothGattService.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/bluetooth/BluetoothGattService.java')
-rw-r--r--core/java/android/bluetooth/BluetoothGattService.java395
1 files changed, 0 insertions, 395 deletions
diff --git a/core/java/android/bluetooth/BluetoothGattService.java b/core/java/android/bluetooth/BluetoothGattService.java
deleted file mode 100644
index f64d09fc30d9..000000000000
--- a/core/java/android/bluetooth/BluetoothGattService.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (C) 2013 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.bluetooth;
-
-import android.annotation.RequiresPermission;
-import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
-import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
-import android.compat.annotation.UnsupportedAppUsage;
-import android.os.Build;
-import android.os.Parcel;
-import android.os.ParcelUuid;
-import android.os.Parcelable;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-/**
- * Represents a Bluetooth GATT Service
- *
- * <p> Gatt Service contains a collection of {@link BluetoothGattCharacteristic},
- * as well as referenced services.
- */
-public class BluetoothGattService implements Parcelable {
-
- /**
- * Primary service
- */
- public static final int SERVICE_TYPE_PRIMARY = 0;
-
- /**
- * Secondary service (included by primary services)
- */
- public static final int SERVICE_TYPE_SECONDARY = 1;
-
-
- /**
- * The remote device this service is associated with.
- * This applies to client applications only.
- *
- * @hide
- */
- @UnsupportedAppUsage
- protected BluetoothDevice mDevice;
-
- /**
- * The UUID of this service.
- *
- * @hide
- */
- protected UUID mUuid;
-
- /**
- * Instance ID for this service.
- *
- * @hide
- */
- protected int mInstanceId;
-
- /**
- * Handle counter override (for conformance testing).
- *
- * @hide
- */
- protected int mHandles = 0;
-
- /**
- * Service type (Primary/Secondary).
- *
- * @hide
- */
- protected int mServiceType;
-
- /**
- * List of characteristics included in this service.
- */
- protected List<BluetoothGattCharacteristic> mCharacteristics;
-
- /**
- * List of included services for this service.
- */
- protected List<BluetoothGattService> mIncludedServices;
-
- /**
- * Whether the service uuid should be advertised.
- */
- private boolean mAdvertisePreferred;
-
- /**
- * Create a new BluetoothGattService.
- *
- * @param uuid The UUID for this service
- * @param serviceType The type of this service,
- * {@link BluetoothGattService#SERVICE_TYPE_PRIMARY}
- * or {@link BluetoothGattService#SERVICE_TYPE_SECONDARY}
- */
- public BluetoothGattService(UUID uuid, int serviceType) {
- mDevice = null;
- mUuid = uuid;
- mInstanceId = 0;
- mServiceType = serviceType;
- mCharacteristics = new ArrayList<BluetoothGattCharacteristic>();
- mIncludedServices = new ArrayList<BluetoothGattService>();
- }
-
- /**
- * Create a new BluetoothGattService
- *
- * @hide
- */
- /*package*/ BluetoothGattService(BluetoothDevice device, UUID uuid,
- int instanceId, int serviceType) {
- mDevice = device;
- mUuid = uuid;
- mInstanceId = instanceId;
- mServiceType = serviceType;
- mCharacteristics = new ArrayList<BluetoothGattCharacteristic>();
- mIncludedServices = new ArrayList<BluetoothGattService>();
- }
-
- /**
- * Create a new BluetoothGattService
- *
- * @hide
- */
- public BluetoothGattService(UUID uuid, int instanceId, int serviceType) {
- mDevice = null;
- mUuid = uuid;
- mInstanceId = instanceId;
- mServiceType = serviceType;
- mCharacteristics = new ArrayList<BluetoothGattCharacteristic>();
- mIncludedServices = new ArrayList<BluetoothGattService>();
- }
-
- /**
- * @hide
- */
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel out, int flags) {
- out.writeParcelable(new ParcelUuid(mUuid), 0);
- out.writeInt(mInstanceId);
- out.writeInt(mServiceType);
- out.writeTypedList(mCharacteristics);
-
- ArrayList<BluetoothGattIncludedService> includedServices =
- new ArrayList<BluetoothGattIncludedService>(mIncludedServices.size());
- for (BluetoothGattService s : mIncludedServices) {
- includedServices.add(new BluetoothGattIncludedService(s.getUuid(),
- s.getInstanceId(), s.getType()));
- }
- out.writeTypedList(includedServices);
- }
-
- public static final @android.annotation.NonNull Parcelable.Creator<BluetoothGattService> CREATOR =
- new Parcelable.Creator<BluetoothGattService>() {
- public BluetoothGattService createFromParcel(Parcel in) {
- return new BluetoothGattService(in);
- }
-
- public BluetoothGattService[] newArray(int size) {
- return new BluetoothGattService[size];
- }
- };
-
- private BluetoothGattService(Parcel in) {
- mUuid = ((ParcelUuid) in.readParcelable(null)).getUuid();
- mInstanceId = in.readInt();
- mServiceType = in.readInt();
-
- mCharacteristics = new ArrayList<BluetoothGattCharacteristic>();
-
- ArrayList<BluetoothGattCharacteristic> chrcs =
- in.createTypedArrayList(BluetoothGattCharacteristic.CREATOR);
- if (chrcs != null) {
- for (BluetoothGattCharacteristic chrc : chrcs) {
- chrc.setService(this);
- mCharacteristics.add(chrc);
- }
- }
-
- mIncludedServices = new ArrayList<BluetoothGattService>();
-
- ArrayList<BluetoothGattIncludedService> inclSvcs =
- in.createTypedArrayList(BluetoothGattIncludedService.CREATOR);
- if (chrcs != null) {
- for (BluetoothGattIncludedService isvc : inclSvcs) {
- mIncludedServices.add(new BluetoothGattService(null, isvc.getUuid(),
- isvc.getInstanceId(), isvc.getType()));
- }
- }
- }
-
- /**
- * Returns the device associated with this service.
- *
- * @hide
- */
- /*package*/ BluetoothDevice getDevice() {
- return mDevice;
- }
-
- /**
- * Returns the device associated with this service.
- *
- * @hide
- */
- /*package*/ void setDevice(BluetoothDevice device) {
- mDevice = device;
- }
-
- /**
- * Add an included service to this service.
- *
- * @param service The service to be added
- * @return true, if the included service was added to the service
- */
- @RequiresLegacyBluetoothPermission
- public boolean addService(BluetoothGattService service) {
- mIncludedServices.add(service);
- return true;
- }
-
- /**
- * Add a characteristic to this service.
- *
- * @param characteristic The characteristics to be added
- * @return true, if the characteristic was added to the service
- */
- @RequiresLegacyBluetoothPermission
- public boolean addCharacteristic(BluetoothGattCharacteristic characteristic) {
- mCharacteristics.add(characteristic);
- characteristic.setService(this);
- return true;
- }
-
- /**
- * Get characteristic by UUID and instanceId.
- *
- * @hide
- */
- /*package*/ BluetoothGattCharacteristic getCharacteristic(UUID uuid, int instanceId) {
- for (BluetoothGattCharacteristic characteristic : mCharacteristics) {
- if (uuid.equals(characteristic.getUuid())
- && characteristic.getInstanceId() == instanceId) {
- return characteristic;
- }
- }
- return null;
- }
-
- /**
- * Force the instance ID.
- *
- * @hide
- */
- @UnsupportedAppUsage
- public void setInstanceId(int instanceId) {
- mInstanceId = instanceId;
- }
-
- /**
- * Get the handle count override (conformance testing.
- *
- * @hide
- */
- /*package*/ int getHandles() {
- return mHandles;
- }
-
- /**
- * Force the number of handles to reserve for this service.
- * This is needed for conformance testing only.
- *
- * @hide
- */
- public void setHandles(int handles) {
- mHandles = handles;
- }
-
- /**
- * Add an included service to the internal map.
- *
- * @hide
- */
- public void addIncludedService(BluetoothGattService includedService) {
- mIncludedServices.add(includedService);
- }
-
- /**
- * Returns the UUID of this service
- *
- * @return UUID of this service
- */
- public UUID getUuid() {
- return mUuid;
- }
-
- /**
- * Returns the instance ID for this service
- *
- * <p>If a remote device offers multiple services with the same UUID
- * (ex. multiple battery services for different batteries), the instance
- * ID is used to distuinguish services.
- *
- * @return Instance ID of this service
- */
- public int getInstanceId() {
- return mInstanceId;
- }
-
- /**
- * Get the type of this service (primary/secondary)
- */
- public int getType() {
- return mServiceType;
- }
-
- /**
- * Get the list of included GATT services for this service.
- *
- * @return List of included services or empty list if no included services were discovered.
- */
- public List<BluetoothGattService> getIncludedServices() {
- return mIncludedServices;
- }
-
- /**
- * Returns a list of characteristics included in this service.
- *
- * @return Characteristics included in this service
- */
- public List<BluetoothGattCharacteristic> getCharacteristics() {
- return mCharacteristics;
- }
-
- /**
- * Returns a characteristic with a given UUID out of the list of
- * characteristics offered by this service.
- *
- * <p>This is a convenience function to allow access to a given characteristic
- * without enumerating over the list returned by {@link #getCharacteristics}
- * manually.
- *
- * <p>If a remote service offers multiple characteristics with the same
- * UUID, the first instance of a characteristic with the given UUID
- * is returned.
- *
- * @return GATT characteristic object or null if no characteristic with the given UUID was
- * found.
- */
- public BluetoothGattCharacteristic getCharacteristic(UUID uuid) {
- for (BluetoothGattCharacteristic characteristic : mCharacteristics) {
- if (uuid.equals(characteristic.getUuid())) {
- return characteristic;
- }
- }
- return null;
- }
-
- /**
- * Returns whether the uuid of the service should be advertised.
- *
- * @hide
- */
- public boolean isAdvertisePreferred() {
- return mAdvertisePreferred;
- }
-
- /**
- * Set whether the service uuid should be advertised.
- *
- * @hide
- */
- @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
- public void setAdvertisePreferred(boolean advertisePreferred) {
- mAdvertisePreferred = advertisePreferred;
- }
-}