# Class GattService

java.lang.Object
com.codename1.bluetooth.gatt.GattService

public class GattService extends Object

A service discovered on a remote GATT server via `BlePeripheral.discoverServices()`. Groups the `GattCharacteristic`s the peripheral exposes.

Instances are constructed by the port during service discovery; application code never creates them.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GattService(BlePeripheral peripheral, BluetoothUuid uuid, boolean primary, int instanceId)`
  Constructed by ports during service discovery; not application API.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCharacteristic(GattCharacteristic characteristic)`
  Called by ports while building the discovered GATT database; not application API.
  `void`
  `addIncludedService(GattService service)`
  Called by ports while building the discovered GATT database; not application API.
  `GattCharacteristic`
  `getCharacteristic(BluetoothUuid uuid)`
  The first characteristic with the given UUID, or `null` when the service has none.
  `List<GattCharacteristic>`
  `getCharacteristics()`
  The characteristics of this service, in discovery order.
  `List<GattService>`
  `getIncludedServices()`
  Secondary services included by this service; usually empty.
  `int`
  `getInstanceId()`
  Disambiguates multiple instances of the same service UUID on one peripheral.
  `BlePeripheral`
  `getPeripheral()`
  The peripheral this service belongs to.
  `BluetoothUuid`
  `getUuid()`
  The UUID identifying this service.
  `boolean`
  `isPrimary()`
  `true` for a primary service, `false` for a secondary one.
  `String`
  `toString()`
  Returns a string representation of the object.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### GattService

    public GattService(BlePeripheral peripheral, BluetoothUuid uuid, boolean primary, int instanceId)
    Constructed by ports during service discovery; not application API.

- ## Method Details

  - ### getUuid

    public BluetoothUuid getUuid()
    The UUID identifying this service.

  - ### isPrimary

    public boolean isPrimary()
    `true` for a primary service, `false` for a secondary one.

  - ### getInstanceId

    public int getInstanceId()
    Disambiguates multiple instances of the same service UUID on one peripheral.

  - ### getPeripheral

    public BlePeripheral getPeripheral()
    The peripheral this service belongs to.

  - ### getCharacteristics

    public List<GattCharacteristic> getCharacteristics()
    The characteristics of this service, in discovery order.

  - ### getCharacteristic

    public GattCharacteristic getCharacteristic(BluetoothUuid uuid)
    The first characteristic with the given UUID, or `null` when the service has none.

  - ### getIncludedServices

    public List<GattService> getIncludedServices()
    Secondary services included by this service; usually empty.

  - ### addCharacteristic

    public void addCharacteristic(GattCharacteristic characteristic)
    Called by ports while building the discovered GATT database; not application API.

  - ### addIncludedService

    public void addIncludedService(GattService service)
    Called by ports while building the discovered GATT database; not application API.

  - ### toString

    public String toString()
    Description copied from class: `Object`
    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
    Overrides:
      `toString` in class `Object`