Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5344e74 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add Android APIs for Hearing Aids Profile"

parents d65b595d d171d884
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -2487,15 +2487,16 @@ public final class BluetoothAdapter {
     * Get the profile proxy object associated with the profile.
     *
     * <p>Profile can be one of {@link BluetoothProfile#HEADSET}, {@link BluetoothProfile#A2DP},
     * {@link BluetoothProfile#GATT}, or {@link BluetoothProfile#GATT_SERVER}. Clients must
     * implement {@link BluetoothProfile.ServiceListener} to get notified of the connection status
     * and to get the proxy object.
     * {@link BluetoothProfile#GATT}, {@link BluetoothProfile#HEARING_AID}, or {@link
     * BluetoothProfile#GATT_SERVER}. Clients must implement {@link
     * BluetoothProfile.ServiceListener} to get notified of the connection status and to get the
     * proxy object.
     *
     * @param context Context of the application
     * @param listener The service Listener for connection callbacks.
     * @param profile The Bluetooth profile; either {@link BluetoothProfile#HEADSET},
     * {@link BluetoothProfile#A2DP}. {@link BluetoothProfile#GATT} or
     * {@link BluetoothProfile#GATT_SERVER}.
     * {@link BluetoothProfile#A2DP}, {@link BluetoothProfile#GATT}, {@link
     * BluetoothProfile#HEARING_AID} or {@link BluetoothProfile#GATT_SERVER}.
     * @return true on success, false on error
     */
    public boolean getProfileProxy(Context context, BluetoothProfile.ServiceListener listener,
+29 −52
Original line number Diff line number Diff line
@@ -38,15 +38,14 @@ import java.util.List;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
 * This class provides the public APIs to control the Bluetooth Hearing Aid
 * profile.
 * This class provides the public APIs to control the Hearing Aid profile.
 *
 * <p>BluetoothHearingAid is a proxy object for controlling the Bluetooth Hearing Aid
 * Service via IPC. Use {@link BluetoothAdapter#getProfileProxy} to get
 * the BluetoothHearingAid proxy object.
 *
 * <p> Each method is protected with its appropriate permission.
 * @hide
 * <p> Android only supports one set of connected Bluetooth Hearing Aid device at a time. Each
 * method is protected with its appropriate permission.
 */
public final class BluetoothHearingAid implements BluetoothProfile {
    private static final String TAG = "BluetoothHearingAid";
@@ -55,7 +54,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {

    /**
     * Intent used to broadcast the change in connection state of the Hearing Aid
     * profile.
     * 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.S
     *
     * <p>This intent will have 3 extras:
     * <ul>
@@ -75,27 +75,6 @@ public final class BluetoothHearingAid implements BluetoothProfile {
    public static final String ACTION_CONNECTION_STATE_CHANGED =
            "android.bluetooth.hearingaid.profile.action.CONNECTION_STATE_CHANGED";

    /**
     * Intent used to broadcast the change in the Playing state of the Hearing Aid
     * profile.
     *
     * <p>This intent will have 3 extras:
     * <ul>
     * <li> {@link #EXTRA_STATE} - The current state of the profile. </li>
     * <li> {@link #EXTRA_PREVIOUS_STATE}- The previous state of the profile. </li>
     * <li> {@link BluetoothDevice#EXTRA_DEVICE} - The remote device. </li>
     * </ul>
     *
     * <p>{@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} can be any of
     * {@link #STATE_PLAYING}, {@link #STATE_NOT_PLAYING},
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to
     * receive.
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_PLAYING_STATE_CHANGED =
            "android.bluetooth.hearingaid.profile.action.PLAYING_STATE_CHANGED";

    /**
     * Intent used to broadcast the selection of a connected device as active.
     *
@@ -107,6 +86,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to
     * receive.
     *
     * @hide
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    @UnsupportedAppUsage
@@ -114,32 +95,38 @@ public final class BluetoothHearingAid implements BluetoothProfile {
            "android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED";

    /**
     * Hearing Aid device is streaming music. This state can be one of
     * {@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} of
     * {@link #ACTION_PLAYING_STATE_CHANGED} intent.
     * This device represents Left Hearing Aid.
     *
     * @hide
     */
    public static final int STATE_PLAYING = 10;
    public static final int SIDE_LEFT = IBluetoothHearingAid.SIDE_LEFT;

    /**
     * Hearing Aid device is NOT streaming music. This state can be one of
     * {@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} of
     * {@link #ACTION_PLAYING_STATE_CHANGED} intent.
     * This device represents Right Hearing Aid.
     *
     * @hide
     */
    public static final int STATE_NOT_PLAYING = 11;

    /** This device represents Left Hearing Aid. */
    public static final int SIDE_LEFT = IBluetoothHearingAid.SIDE_LEFT;

    /** This device represents Right Hearing Aid. */
    public static final int SIDE_RIGHT = IBluetoothHearingAid.SIDE_RIGHT;

    /** This device is Monaural. */
    /**
     * This device is Monaural.
     *
     * @hide
     */
    public static final int MODE_MONAURAL = IBluetoothHearingAid.MODE_MONAURAL;

    /** This device is Binaural (should receive only left or right audio). */
    /**
     * This device is Binaural (should receive only left or right audio).
     *
     * @hide
     */
    public static final int MODE_BINAURAL = IBluetoothHearingAid.MODE_BINAURAL;

    /** Can't read ClientID for this device */
    /**
     * Indicates the HiSyncID could not be read and is unavailable.
     *
     * @hide
     */
    public static final long HI_SYNC_ID_INVALID = IBluetoothHearingAid.HI_SYNC_ID_INVALID;

    private Context mContext;
@@ -235,12 +222,6 @@ public final class BluetoothHearingAid implements BluetoothProfile {
        }
    }

    @Override
    public void finalize() {
        // The empty finalize needs to be kept or the
        // cts signature tests would fail.
    }

    /**
     * Initiate connection to a profile of the remote bluetooth device.
     *
@@ -537,10 +518,6 @@ public final class BluetoothHearingAid implements BluetoothProfile {
                return "connected";
            case STATE_DISCONNECTING:
                return "disconnecting";
            case STATE_PLAYING:
                return "playing";
            case STATE_NOT_PLAYING:
                return "not playing";
            default:
                return "<unknown state " + state + ">";
        }
+0 −1
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ public interface BluetoothProfile {
    /**
     * Hearing Aid Device
     *
     * @hide
     */
    int HEARING_AID = 21;