Tizen Native API
Bluetooth Audio

Bluetooth Audio API provides functions for connecting to Bluetooth audio devices such as headset, hand-free and headphone.

Required Header

#include <bluetooth.h>

Overview

This API supports the HFP(Hands-Free Profile), HSP(Headset Profile) and A2DP(Advanced Audio Distribution Profile).

Related Features

This API is related with the following features:

It is recommended to design feature related codes in your application for reliability.

You can check if a device supports the related features for this API by using System Information, thereby controlling the procedure of your application.

To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.

More details on featuring your application can be found from Feature Element.

Functions

int bt_audio_initialize (void)
 Initializes the Bluetooth profiles related with audio.
int bt_audio_deinitialize (void)
 Deinitializes the Bluetooth profiles related with audio.
int bt_audio_connect (const char *remote_address, bt_audio_profile_type_e type)
 Connects the remote device with the given audio profile, asynchronously.
int bt_audio_disconnect (const char *remote_address, bt_audio_profile_type_e type)
 Disconnects the remote device with the given audio profile, asynchronously.
int bt_audio_set_connection_state_changed_cb (bt_audio_connection_state_changed_cb callback, void *user_data)
 Registers a callback function that will be invoked when the connection state is changed.
int bt_audio_unset_connection_state_changed_cb (void)
 Unregisters a callback function that will be invoked when the connection state is changed.

Typedefs

typedef void(* bt_audio_connection_state_changed_cb )(int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data)
 Called when the connection state is changed.

Typedef Documentation

typedef void(* bt_audio_connection_state_changed_cb)(int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data)

Called when the connection state is changed.

Since :
2.3

This callback is called when the connection state is changed. When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.

Parameters:
[in]resultThe result of changing the connection state
[in]connectedThe state to be changed. true means connected state, Otherwise, false.
[in]remote_addressThe remote address
[in]typeThe type of audio profile except BT_AUDIO_PROFILE_TYPE_ALL
[in]user_dataThe user data passed from the callback registration function
See also:
bt_audio_set_connection_state_changed_cb()
bt_audio_unset_connection_state_changed_cb()

Enumeration Type Documentation

Enumerations for the types of profiles related with audio.

Since :
2.3
Enumerator:
BT_AUDIO_PROFILE_TYPE_ALL 

All supported profiles related with audio

BT_AUDIO_PROFILE_TYPE_HSP_HFP 

HSP(Headset Profile) and HFP(Hands-Free Profile)

BT_AUDIO_PROFILE_TYPE_A2DP 

A2DP(Advanced Audio Distribution Profile)

BT_AUDIO_PROFILE_TYPE_AG 

AG(Audio Gateway)

BT_AUDIO_PROFILE_TYPE_A2DP_SINK 

A2DP(Advanced Audio Distribution Profile) Sink role


Function Documentation

int bt_audio_connect ( const char *  remote_address,
bt_audio_profile_type_e  type 
)

Connects the remote device with the given audio profile, asynchronously.

Since :
2.3
Privilege Level:
public
Privilege:
http://tizen.org/privilege/bluetooth

If you input type as BT_AUDIO_PROFILE_TYPE_ALL and connection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice when BT_AUDIO_PROFILE_TYPE_HSP_HFP is connected and BT_AUDIO_PROFILE_TYPE_A2DP is connected.

Parameters:
[in]remote_addressThe remote address
[in]typeThe type of audio profile
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_INVALID_PARAMETERInvalid parameter
BT_ERROR_NOT_ENABLEDNot enabled
BT_ERROR_OPERATION_FAILEDOperation failed
BT_ERROR_PERMISSION_DENIEDPermission denied
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The Bluetooth audio service must be initialized with bt_audio_initialize().
The local device must be bonded with the remote device by bt_device_create_bond().
Postcondition:
bt_audio_connection_state_changed_cb() will be invoked.
See also:
bt_audio_disconnect()
bt_audio_connection_state_changed_cb()
int bt_audio_deinitialize ( void  )

Deinitializes the Bluetooth profiles related with audio.

Since :
2.3
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_OPERATION_FAILEDOperation failed
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The Bluetooth audio service must be initialized with bt_audio_initialize().
See also:
bt_audio_initialize()
int bt_audio_disconnect ( const char *  remote_address,
bt_audio_profile_type_e  type 
)

Disconnects the remote device with the given audio profile, asynchronously.

Since :
2.3
Privilege Level:
public
Privilege:
http://tizen.org/privilege/bluetooth

If you input type as BT_AUDIO_PROFILE_TYPE_ALL and disconnection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice when BT_AUDIO_PROFILE_TYPE_HSP_HFP is disconnected and BT_AUDIO_PROFILE_TYPE_A2DP is disconnected.

Parameters:
[in]remote_addressThe remote address
[in]typeThe type of audio profile
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_INVALID_PARAMETERInvalid parameter
BT_ERROR_NOT_ENABLEDNot enabled
BT_ERROR_OPERATION_FAILEDOperation failed
BT_ERROR_PERMISSION_DENIEDPermission denied
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The remote device must be connected by bt_audio_connect().
Postcondition:
bt_audio_connection_state_changed_cb() will be invoked.
See also:
bt_audio_connect()
bt_audio_connection_state_changed_cb()
int bt_audio_initialize ( void  )

Initializes the Bluetooth profiles related with audio.

Since :
2.3
Remarks:
This function must be called before Bluetooth profiles related with audio starts.
You must free all resources of the this service by calling bt_audio_deinitialize() if Bluetooth profiles related with audio service is no longer needed.
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_OPERATION_FAILEDOperation failed
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The Bluetooth service must be initialized with bt_initialize().
See also:
bt_initialize()
bt_audio_deinitialize()

Registers a callback function that will be invoked when the connection state is changed.

Since :
2.3
Parameters:
[in]callbackThe callback function to register
[in]user_dataThe user data to be passed to the callback function
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_INVALID_PARAMETERInvalid parameter
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The Bluetooth audio service must be initialized with bt_audio_initialize().
See also:
bt_audio_initialize()
bt_audio_connection_state_changed_cb()

Unregisters a callback function that will be invoked when the connection state is changed.

Since :
2.3
Returns:
0 on success, otherwise a negative error value.
Return values:
BT_ERROR_NONESuccessful
BT_ERROR_NOT_INITIALIZEDNot initialized
BT_ERROR_NOT_SUPPORTEDNot supported
Precondition:
The Bluetooth audio service must be initialized with bt_audio_initialize().
See also:
bt_audio_initialize()
bt_audio_connection_state_changed_cb()
bt_audio_set_connection_state_changed_cb()