/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.bluetooth; import android.os.ParcelFileDescriptor; import android.util.Log; import java.util.ArrayList; import java.util.List; /** * Public API for Bluetooth Health Profile. * *
BluetoothHealth is a proxy object for controlling the Bluetooth * Service via IPC. * *
How to connect to a health device which is acting in the source role. *
Requires {@link android.Manifest.permission#BLUETOOTH} permission. * * @param name The friendly name associated with the application or configuration. * @param dataType The dataType of the Source role of Health Profile to which the sink wants to * connect to. * @param callback A callback to indicate success or failure of the registration and all * operations done on this application configuration. * @return 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)} */ @Deprecated public boolean registerSinkAppConfiguration(String name, int dataType, BluetoothHealthCallback callback) { Log.e(TAG, "registerSinkAppConfiguration(): BluetoothHealth is deprecated"); return false; } /** * Unregister an application configuration that has been registered using * {@link #registerSinkAppConfiguration} * *
Requires {@link android.Manifest.permission#BLUETOOTH} permission. * * @param config The health app configuration * @return 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)} */ @Deprecated public boolean unregisterAppConfiguration(BluetoothHealthAppConfiguration config) { Log.e(TAG, "unregisterAppConfiguration(): BluetoothHealth is deprecated"); return false; } /** * 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. * *
Requires {@link android.Manifest.permission#BLUETOOTH} permission. * * @param device The remote Bluetooth device. * @param config The application configuration which has been registered using {@link * #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) } * @return 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)} */ @Deprecated public boolean connectChannelToSource(BluetoothDevice device, BluetoothHealthAppConfiguration config) { Log.e(TAG, "connectChannelToSource(): BluetoothHealth is deprecated"); return false; } /** * 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. * *
Requires {@link android.Manifest.permission#BLUETOOTH} permission. * * @param device The remote Bluetooth device. * @param config The application configuration which has been registered using {@link * #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) } * @param channelId The channel id associated with the channel * @return 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)} */ @Deprecated public boolean disconnectChannel(BluetoothDevice device, BluetoothHealthAppConfiguration config, int channelId) { Log.e(TAG, "disconnectChannel(): BluetoothHealth is deprecated"); return false; } /** * Get the file descriptor of the main channel associated with the remote device * and application configuration. * *
Requires {@link android.Manifest.permission#BLUETOOTH} permission. * *
Its the responsibility of the caller to close the ParcelFileDescriptor * when done. * * @param device The remote Bluetooth health device * @param config The application configuration * @return 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)} */ @Deprecated public ParcelFileDescriptor getMainChannelFd(BluetoothDevice device, BluetoothHealthAppConfiguration config) { Log.e(TAG, "getMainChannelFd(): BluetoothHealth is deprecated"); return null; } /** * Get the current connection state of the profile. * *
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 device Remote bluetooth device. * @return State of the profile connection. One of {@link #STATE_CONNECTED}, {@link * #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING} */ @Override public int getConnectionState(BluetoothDevice device) { Log.e(TAG, "getConnectionState(): BluetoothHealth is deprecated"); return STATE_DISCONNECTED; } /** * Get connected devices for the health profile. * *
Return the set of devices which are in state {@link #STATE_CONNECTED} * *
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 List of devices. The list will be empty on error.
*/
@Override
public List If none of the devices match any of the given states,
* an empty list will be returned.
*
* 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 states Array of states. States can be one of {@link #STATE_CONNECTED}, {@link
* #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING},
* @return List of devices. The list will be empty on error.
*/
@Override
public List