Stay organized with collections Save and categorize content based on your preferences.

public final class BluetoothManager
extends Object



High level manager used to obtain an instance of an BluetoothAdapter and to conduct overall Bluetooth Management.

Use Context.getSystemService(java.lang.String) with Context#BLUETOOTH_SERVICE to create an BluetoothManager, then call getAdapter() to obtain the BluetoothAdapter.

Developer Guides

For more information about using BLUETOOTH, read the Bluetooth developer guide.

Requires the PackageManager#FEATURE_BLUETOOTH feature which can be detected using PackageManager.hasSystemFeature(String).

Summary

Public methods

BluetoothAdapter getAdapter()

Get the BLUETOOTH Adapter for this device.

List<BluetoothDevice> getConnectedDevices(int profile)

Get connected devices for the specified profile.

int getConnectionState(BluetoothDevice device, int profile)

Get the current connection state of the profile to the remote device.

List<BluetoothDevice> getDevicesMatchingConnectionStates(int profile, int[] states)

Get a list of devices that match any of the given connection states.

BluetoothGattServer openGattServer(Context context, BluetoothGattServerCallback callback)

Open a GATT Server The callback is used to deliver results to Caller, such as connection status as well as the results of any other GATT server operations.

Inherited methods

From class java.lang.Object

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Public methods

getAdapter

public BluetoothAdapter getAdapter ()

Get the BLUETOOTH Adapter for this device.

Returns
BluetoothAdapter the BLUETOOTH Adapter

getConnectedDevices

public List<BluetoothDevice> getConnectedDevices (int profile)

Get connected devices for the specified profile.

Return the set of devices which are in state BluetoothProfile#STATE_CONNECTED

This is not specific to any application configuration but represents the connection state of Bluetooth for this profile. This can be used by applications like status bar which would just like to know the state of Bluetooth.
For apps targeting Build.VERSION_CODES#R or lower, this requires the Manifest.permission#BLUETOOTH permission which can be gained with a simple <uses-permission> manifest tag.
For apps targeting Build.VERSION_CODES#S or or higher, this requires the Manifest.permission#BLUETOOTH_CONNECT permission which can be gained with Activity.requestPermissions(String[], int).
Requires Manifest.permission.BLUETOOTH_CONNECT

Parameters
profile int: GATT or GATT_SERVER
Returns
List<BluetoothDevice> List of devices. The list will be empty on error.

getConnectionState

public int getConnectionState (BluetoothDevice device, 
                int profile)

Get the current connection state of the profile to the remote device.

This is not specific to any application configuration but represents the connection state of the local Bluetooth adapter for certain profile. This can be used by applications like status bar which would just like to know the state of Bluetooth.
For apps targeting Build.VERSION_CODES#R or lower, this requires the Manifest.permission#BLUETOOTH permission which can be gained with a simple <uses-permission> manifest tag.
For apps targeting Build.VERSION_CODES#S or or higher, this requires the Manifest.permission#BLUETOOTH_CONNECT permission which can be gained with Activity.requestPermissions(String[], int).
Requires Manifest.permission.BLUETOOTH_CONNECT

Parameters
device BluetoothDevice: Remote bluetooth device.
profile int: GATT or GATT_SERVER
Returns
int State of the profile connection. One of BluetoothProfile#STATE_CONNECTED, BluetoothProfile#STATE_CONNECTING, BluetoothProfile#STATE_DISCONNECTED, BluetoothProfile#STATE_DISCONNECTING

getDevicesMatchingConnectionStates

public List<BluetoothDevice> getDevicesMatchingConnectionStates (int profile, 
                int[] states)

Get a list of devices that match any of the given connection states.

If none of the devices match any of the given states, an empty list will be returned.

This is not specific to any application configuration but represents the connection state of the local Bluetooth adapter for this profile. This can be used by applications like status bar which would just like to know the state of the local adapter.
For apps targeting Build.VERSION_CODES#R or lower, this requires the Manifest.permission#BLUETOOTH permission which can be gained with a simple <uses-permission> manifest tag.
For apps targeting Build.VERSION_CODES#S or or higher, this requires the Manifest.permission#BLUETOOTH_CONNECT permission which can be gained with Activity.requestPermissions(String[], int).
Requires Manifest.permission.BLUETOOTH_CONNECT

Parameters
profile int: GATT or GATT_SERVER
states int: Array of states. States can be one of BluetoothProfile#STATE_CONNECTED, BluetoothProfile#STATE_CONNECTING, BluetoothProfile#STATE_DISCONNECTED, BluetoothProfile#STATE_DISCONNECTING,
Returns
List<BluetoothDevice> List of devices. The list will be empty on error.

openGattServer

public BluetoothGattServer openGattServer (Context context, 
                BluetoothGattServerCallback callback)

Open a GATT Server The callback is used to deliver results to Caller, such as connection status as well as the results of any other GATT server operations. The method returns a BluetoothGattServer instance. You can use BluetoothGattServer to conduct GATT server operations.
For apps targeting Build.VERSION_CODES#S or or higher, this requires the Manifest.permission#BLUETOOTH_CONNECT permission which can be gained with Activity.requestPermissions(String[], int).
Requires Manifest.permission.BLUETOOTH_CONNECT

Parameters
context Context: App context
callback BluetoothGattServerCallback: GATT server callback handler that will receive asynchronous callbacks.
Returns
BluetoothGattServer BluetoothGattServer instance

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2023-02-08 UTC.