The project includes a few simple example applications to illustrate some of the ways the library APIs can be used. These examples include:
Run a simple device example with a GATT server that exposes a standard Battery Service.
An app that connects to a device, discovers its GATT services, and, if the Device Information Service is found, looks for a Manufacturer Name characteristics, reads and prints it.
An app that implements a virtual keyboard or mouse, or can connect to a real keyboard and receive key presses.
An app that connects to a device, phone or computer and inspects its A2DP (Advanced Audio Profile) capabilities
An app that can connect to a Bluetooth speaker and play audio.
An app that implements a virtual Bluetooth speaker that can receive audio.
An app that runs a simple device that just advertises (BLE).
An app that creates a simple CIG containing two CISes. Note: If using the example config file (e.g. device1.json
), the address
needs to be removed, so that the devices are given different random addresses.
An app that connects to a Bluetooth Classic device and prints its services.
An app that implements a discoverable and connectable Bluetooth Classic device.
An app that discovers Bluetooth Classic devices and prints their information.
An app that connected to a device (BLE) and encrypts the connection.
Creates two linked controllers, attaches one to a transport, and the other to a local host with a GATT server application. This can be used, for example, to attach a virtual controller to a native stack, like BlueZ on Linux, and use the native tools, like bluetoothctl
, to scan and connect to the GATT server included in the example.
Runs CSIS servers on two devices to form a Coordinated Set. Note: If using the example config file (e.g. device1.json
), the address
needs to be removed, so that the devices are given different random addresses.
Runs a local GATT server and GATT client, connected to each other. The GATT client discovers and logs all the services and characteristics exposed by the GATT server
A simple GATT client that either connects to another BLE device or waits for a connection, then dumps its GATT database.
A simple GATT server that either connects to another BLE device or waits for connections.
A app that implements a Hands Free gateway. It can connect to a Hands Free headset.
A app that implements a Hands Free headset. It can simulate some of the events that a real headset would emit, like picking up or hanging up a call, pressing a button, etc.
An app that implements a GATT server with characteristics that can be subscribed to, and emits notifications for those characteristics at regular intervals.
An app that connects to an RFComm server and bridges the RFComm channel to a local TCP socket
An app that implements an RFComm server and, when a connection is received, bridges the channel to a local TCP socket
An app that scan for BLE devices and print the advertisements received.