BluetoothLeAudio
class BluetoothLeAudio : AutoCloseable, BluetoothProfile
kotlin.Any | |
↳ | android.bluetooth.BluetoothLeAudio |
This class provides the public APIs to control the LeAudio profile.
BluetoothLeAudio is a proxy object for controlling the Bluetooth LE Audio Service via IPC. Use BluetoothAdapter.getProfileProxy
to get the BluetoothLeAudio proxy object.
Android only supports one set of connected Bluetooth LeAudio device at a time. Each method is protected with its appropriate permission.
Summary
Constants | |
---|---|
static String |
Intent used to broadcast the change in connection state of the LeAudio profile. |
static Int |
This represents an invalid group ID. |
Inherited constants | |
---|---|
Public methods | |
---|---|
MutableList<BluetoothDevice!> |
Get connected devices for this specific profile. |
BluetoothDevice? |
getConnectedGroupLeadDevice(groupId: Int) Get Lead device for the group. |
Int |
getConnectionState(device: BluetoothDevice) Get the current connection state of the profile |
MutableList<BluetoothDevice!> |
Get a list of devices that match any of the given connection states. |
Int |
getGroupId(device: BluetoothDevice) Get device group id. |
Protected methods | |
---|---|
Unit |
finalize() |
Constants
ACTION_LE_AUDIO_CONNECTION_STATE_CHANGED
static val ACTION_LE_AUDIO_CONNECTION_STATE_CHANGED: String
Intent used to broadcast the change in connection state of the LeAudio profile. Please note that in the binaural case, there will be two different LE devices for the left and right side and each device will have their own connection state changes.
This intent will have 3 extras:
EXTRA_STATE
- The current state of the profile.EXTRA_PREVIOUS_STATE
- The previous state of the profile.BluetoothDevice.EXTRA_DEVICE
- The remote device.
EXTRA_STATE
or EXTRA_PREVIOUS_STATE
can be any of STATE_DISCONNECTED
, STATE_CONNECTING
, STATE_CONNECTED
, STATE_DISCONNECTING
.
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 android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Value: "android.bluetooth.action.LE_AUDIO_CONNECTION_STATE_CHANGED"
GROUP_ID_INVALID
static val GROUP_ID_INVALID: Int
This represents an invalid group ID.
Value: -1
Public methods
getConnectedDevices
fun getConnectedDevices(): MutableList<BluetoothDevice!>
Get connected devices for this specific profile.
Return the set of devices which are in state STATE_CONNECTED
For apps targeting Build.VERSION_CODES.S
or or higher, this requires the Manifest.permission.BLUETOOTH_CONNECT
permission which can be gained with android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Return | |
---|---|
MutableList<BluetoothDevice!> |
This value cannot be null . |
getConnectedGroupLeadDevice
fun getConnectedGroupLeadDevice(groupId: Int): BluetoothDevice?
Get Lead device for the group.
Lead device is the device that can be used as an active device in the system. Active devices points to the Audio Device for the Le Audio group. This method returns the Lead devices for the connected LE Audio group and this device should be used in the setActiveDevice() method by other parts of the system, which wants to set to active a particular Le Audio group.
Note: getActiveDevice() returns the Lead device for the currently active LE Audio group. Note: When Lead device gets disconnected while Le Audio group is active and has more devices in the group, then Lead device will not change. If Lead device gets disconnected, for the Le Audio group which is not active, a new Lead device will be chosen
For apps targeting Build.VERSION_CODES.S
or or higher, this requires the Manifest.permission.BLUETOOTH_CONNECT
permission which can be gained with android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Parameters | |
---|---|
groupId |
Int: The group id. |
Return | |
---|---|
BluetoothDevice? |
group lead device. This value may be null . |
getConnectionState
fun getConnectionState(device: BluetoothDevice): Int
Get the current connection state of the profile
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 android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Parameters | |
---|---|
device |
BluetoothDevice: This value cannot be null . |
getDevicesMatchingConnectionStates
fun getDevicesMatchingConnectionStates(states: IntArray): MutableList<BluetoothDevice!>
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.
For apps targeting Build.VERSION_CODES.S
or or higher, this requires the Manifest.permission.BLUETOOTH_CONNECT
permission which can be gained with android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Parameters | |
---|---|
states |
IntArray: This value cannot be null . |
Return | |
---|---|
MutableList<BluetoothDevice!> |
This value cannot be null . |
getGroupId
fun getGroupId(device: BluetoothDevice): Int
Get device group id. Devices with same group id belong to same group (i.e left and right earbud)
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 android.app.Activity#requestPermissions(String[], int)
.
Requires android.Manifest.permission#BLUETOOTH_CONNECT
Parameters | |
---|---|
device |
BluetoothDevice: LE Audio capable device This value cannot be null . |
Return | |
---|---|
Int |
group id that this device currently belongs to, GROUP_ID_INVALID when this device does not belong to any group |
Protected methods
finalize
protected fun finalize(): Unit
Exceptions | |
---|---|
java.lang.Throwable |
the Exception raised by this method |