# Package com.codename1.bluetooth.gatt

package com.codename1.bluetooth.gatt

The client-side GATT model discovered on a remote peripheral: `GattService`, `GattCharacteristic` (read/write/subscribe), `GattDescriptor`, notification listeners and ATT status codes.

Instances are constructed by the active port during `BlePeripheral.discoverServices()`; application code navigates the model and issues operations, which route through the owning peripheral's serialized operation queue.

- Related Packages
  Package
  Description
  com.codename1.bluetooth
  Cross-platform Bluetooth API: adapter state, runtime permissions and capability queries.
  com.codename1.bluetooth.classic
  Classic Bluetooth (BR/EDR): inquiry discovery (`ClassicDiscovery`), bonded-device listing and RFCOMM stream connections (`RfcommConnection`, `RfcommServer`).
  com.codename1.bluetooth.le
  BLE central role: scanning (`BluetoothLE`, `ScanSettings`, `ScanFilter`, `ScanResult`, `BleScan`), connections and the GATT client (`BlePeripheral`, connection events) and L2CAP connection-oriented channels (`L2capChannel`, `L2capServer`).
- Class
  Description
  GattCharacteristic
  A characteristic of a remote `GattService` -- the unit of data exchange with a BLE peripheral.
  GattDescriptor
  A descriptor of a remote `GattCharacteristic`.
  GattNotificationListener
  Receives characteristic value changes (notifications and indications) after subscribing via `GattCharacteristic.subscribe(GattNotificationListener)`.
  GattService
  A service discovered on a remote GATT server via `BlePeripheral.discoverServices()`.
  GattStatus
  ATT protocol status codes, used both to interpret remote GATT failures and to respond to requests when acting as a GATT server.