/**@class android.bluetooth.BluetoothHealth implements android.bluetooth.BluetoothProfile @extends java.lang.Object Public API for Bluetooth Health Profile. <p>BluetoothHealth is a proxy object for controlling the Bluetooth Service via IPC. <p> How to connect to a health device which is acting in the source role. <li> Use {@link android.bluetooth.BluetoothAdapter#getProfileProxy} to get the BluetoothHealth proxy object. </li> <li> Create an {@link android.bluetooth.BluetoothHealth} callback and call {@link #registerSinkAppConfiguration} to register an application configuration </li> <li> Pair with the remote device. This currently needs to be done manually from Bluetooth Settings </li> <li> Connect to a health device using {@link #connectChannelToSource}. Some devices will connect the channel automatically. The {@link android.bluetooth.BluetoothHealth} callback will inform the application of channel state change. </li> <li> Use the file descriptor provided with a connected channel to read and write data to the health channel. </li> <li> The received data needs to be interpreted using a health manager which implements the IEEE 11073-xxxxx specifications. <li> When done, close the health channel by calling {@link #disconnectChannel} and unregister the application configuration calling {@link #unregisterAppConfiguration} @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ var BluetoothHealth = { /** Health Profile Source Role - the health device. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ SOURCE_ROLE : "1", /** Health Profile Sink Role the device talking to the health device. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ SINK_ROLE : "2", /** Health Profile - Channel Type used - Reliable @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ CHANNEL_TYPE_RELIABLE : "10", /** Health Profile - Channel Type used - Streaming @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ CHANNEL_TYPE_STREAMING : "11", /**Health Channel Connection State - Disconnected @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ STATE_CHANNEL_DISCONNECTED : "0", /**Health Channel Connection State - Connecting @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ STATE_CHANNEL_CONNECTING : "1", /**Health Channel Connection State - Connected @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ STATE_CHANNEL_CONNECTED : "2", /**Health Channel Connection State - Disconnecting @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ STATE_CHANNEL_DISCONNECTING : "3", /**Health App Configuration registration success @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ APP_CONFIG_REGISTRATION_SUCCESS : "0", /**Health App Configuration registration failure @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ APP_CONFIG_REGISTRATION_FAILURE : "1", /**Health App Configuration un-registration success @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ APP_CONFIG_UNREGISTRATION_SUCCESS : "2", /**Health App Configuration un-registration failure @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt}, {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)} */ APP_CONFIG_UNREGISTRATION_FAILURE : "3", /**Register an application configuration that acts as a Health SINK. This is the configuration that will be used to communicate with health devices which will act as the {@link #SOURCE_ROLE}. This is an asynchronous call and so the callback is used to notify success or failure if the function returns true. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. @param {String} name The friendly name associated with the application or configuration. @param {Number} dataType The dataType of the Source role of Health Profile to which the sink wants to connect to. @param {Object {BluetoothHealthCallback}} callback A callback to indicate success or failure of the registration and all operations done on this application configuration. @return {Boolean} If true, callback will be called. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt}, {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link BluetoothDevice#createL2capChannel(int)} */ registerSinkAppConfiguration : function( ) {}, /**Unregister an application configuration that has been registered using {@link #registerSinkAppConfiguration} <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. @param {Object {BluetoothHealthAppConfiguration}} config The health app configuration @return {Boolean} Success or failure. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt}, {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link BluetoothDevice#createL2capChannel(int)} */ unregisterAppConfiguration : function( ) {}, /**Connect to a health device which has the {@link #SOURCE_ROLE}. This is an asynchronous call. If this function returns true, the callback associated with the application configuration will be called. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. @param {Object {BluetoothDevice}} device The remote Bluetooth device. @param {Object {BluetoothHealthAppConfiguration}} config The application configuration which has been registered using {@link #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) } @return {Boolean} If true, the callback associated with the application config will be called. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt}, {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link BluetoothDevice#createL2capChannel(int)} */ connectChannelToSource : function( ) {}, /**Disconnect a connected health channel. This is an asynchronous call. If this function returns true, the callback associated with the application configuration will be called. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. @param {Object {BluetoothDevice}} device The remote Bluetooth device. @param {Object {BluetoothHealthAppConfiguration}} config The application configuration which has been registered using {@link #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) } @param {Number} channelId The channel id associated with the channel @return {Boolean} If true, the callback associated with the application config will be called. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt}, {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link BluetoothDevice#createL2capChannel(int)} */ disconnectChannel : function( ) {}, /**Get the file descriptor of the main channel associated with the remote device and application configuration. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. <p> Its the responsibility of the caller to close the ParcelFileDescriptor when done. @param {Object {BluetoothDevice}} device The remote Bluetooth health device @param {Object {BluetoothHealthAppConfiguration}} config The application configuration @return {Object {android.os.ParcelFileDescriptor}} null on failure, ParcelFileDescriptor on success. @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt}, {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or {@link BluetoothDevice#createL2capChannel(int)} */ getMainChannelFd : function( ) {}, /**Get the current connection state of the profile. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. This is not specific to any application configuration but represents the connection state of the local Bluetooth adapter with the remote device. This can be used by applications like status bar which would just like to know the state of the local adapter. @param {Object {BluetoothDevice}} device Remote bluetooth device. @return {Number} State of the profile connection. One of {@link #STATE_CONNECTED}, {@link #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING} */ getConnectionState : function( ) {}, /**Get connected devices for the health profile. <p> Return the set of devices which are in state {@link #STATE_CONNECTED} <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. 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. @return {Object {java.util.List}} List of devices. The list will be empty on error. */ getConnectedDevices : function( ) {}, /**Get a list of devices that match any of the given connection states. <p> If none of the devices match any of the given states, an empty list will be returned. <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. 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. @param {Object {int[]}} states Array of states. States can be one of {@link #STATE_CONNECTED}, {@link #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING}, @return {Object {java.util.List}} List of devices. The list will be empty on error. */ getDevicesMatchingConnectionStates : function( ) {}, };