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

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

Merge "Add a way to query for supported Bluetooth profiles."

parents 257f8fe8 ff5093b7
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -1512,6 +1512,36 @@ public final class BluetoothAdapter {
        return null;
    }

    /**
     * Gets the currently supported profiles by the adapter.
     *
     *<p> This can be used to check whether a profile is supported before attempting
     * to connect to its respective proxy.
     *
     * @return a list of integers indicating the ids of supported profiles as defined in
     * {@link BluetoothProfile}.
     * @hide
     */
    public List<Integer> getSupportedProfiles() {
        final ArrayList<Integer> supportedProfiles = new ArrayList<Integer>();

        try {
            synchronized (mManagerCallback) {
                if (mService != null) {
                    final long supportedProfilesBitMask = mService.getSupportedProfiles();

                    for (int i = 0; i <= BluetoothProfile.MAX_PROFILE_ID; i++) {
                        if ((supportedProfilesBitMask & (1 << i)) != 0) {
                            supportedProfiles.add(i);
                        }
                    }
                }
            }
        } catch (RemoteException e) {Log.e(TAG, "getSupportedProfiles:", e);}

        return supportedProfiles;
    }

    /**
     * Get the current connection state of the local Bluetooth adapter.
     * This can be used to check whether the local Bluetooth adapter is connected
+7 −0
Original line number Diff line number Diff line
@@ -136,6 +136,13 @@ public interface BluetoothProfile {
     */
    public static final int PBAP_CLIENT = 17;

    /**
     * Max profile ID. This value should be updated whenever a new profile is added to match
     * the largest value assigned to a profile.
     * @hide
     */
    public static final int MAX_PROFILE_ID = 17;

    /**
     * Default priority for devices that we try to auto-connect to and
     * and allow incoming connections for the profile
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ interface IBluetooth
    boolean removeBond(in BluetoothDevice device);
    int getBondState(in BluetoothDevice device);
    boolean isBondingInitiatedLocally(in BluetoothDevice device);
    long getSupportedProfiles();
    int getConnectionState(in BluetoothDevice device);

    String getRemoteName(in BluetoothDevice device);