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

Commit e412df1b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add a system api to fetch uuids by the specific transport" into...

Merge "Add a system api to fetch uuids by the specific transport" into sc-dev-plus-aosp am: a928d17b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15544581

Change-Id: I735652895b3c358b2ed27b874f7e7a36ae8e514e
parents 1e4b7c11 a928d17b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1967,6 +1967,7 @@ package android.bluetooth {
    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean canBondWithoutDialog();
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean cancelBondProcess();
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData);
    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean fetchUuidsWithSdp(int);
    method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public byte[] getMetadata(int);
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getSimAccessPermission();
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isConnected();
+29 −1
Original line number Diff line number Diff line
@@ -1791,13 +1791,41 @@ public final class BluetoothDevice implements Parcelable, Attributable {
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    public boolean fetchUuidsWithSdp() {
        return fetchUuidsWithSdp(TRANSPORT_AUTO);
    }

    /**
     * Perform a service discovery on the remote device to get the UUIDs supported with the
     * specific transport.
     *
     * <p>This API is asynchronous and {@link #ACTION_UUID} intent is sent,
     * with the UUIDs supported by the remote end. If there is an error
     * in getting the SDP or GATT records or if the process takes a long time, or the device
     * is bonding and we have its UUIDs cached, {@link #ACTION_UUID} intent is sent with the
     * UUIDs that is currently present in the cache. Clients should use the {@link #getUuids}
     * to get UUIDs if service discovery is not to be performed. If there is an ongoing bonding
     * process, service discovery or device inquiry, the request will be queued.
     *
     * @param transport - provide type of transport (e.g. LE or Classic).
     * @return False if the check fails, True if the process of initiating an ACL connection
     * to the remote device was started or cached UUIDs will be broadcast with the specific
     * transport.
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    public boolean fetchUuidsWithSdp(@Transport int transport) {
        final IBluetooth service = sService;
        if (service == null || !isBluetoothEnabled()) {
            Log.e(TAG, "BT not enabled. Cannot fetchUuidsWithSdp");
            return false;
        }
        try {
            return service.fetchRemoteUuidsWithAttribution(this, mAttributionSource);
            return service.fetchRemoteUuidsWithAttribution(this, transport, mAttributionSource);
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
        }