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

Commit 968b23b8 authored by Chienyuan's avatar Chienyuan Committed by Automerger Merge Worker
Browse files

Add API to get identity address am: 14c9fcd9 am: 9321e8cb

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1951996

Change-Id: Idbec214503428599f90cad1ebdbf992d1fb8e087
parents a9024068 9321e8cb
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -1636,6 +1636,19 @@ public class AdapterService extends Service {
            return Arrays.asList(parcels);
        }

        @Override
        public String getIdentityAddress(String address) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getIdentityAddress")
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, Utils.getCallingAttributionSource(mService),
                                "AdapterService getIdentityAddress")) {
                return null;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.getIdentityAddress(address);
        }

        @Override
        public void getName(AttributionSource source, SynchronousResultReceiver receiver) {
            try {
@@ -1644,7 +1657,8 @@ public class AdapterService extends Service {
                receiver.propagateException(e);
            }
        }
        private String getName(AttributionSource attributionSource) {

        public String getName(AttributionSource attributionSource) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getName")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -3753,7 +3767,7 @@ public class AdapterService extends Service {

    public byte[] getByteIdentityAddress(BluetoothDevice device) {
        DeviceProperties deviceProp = mRemoteDevices.getDeviceProperties(device);
        if (deviceProp.isConsolidated()) {
        if (deviceProp != null && deviceProp.isConsolidated()) {
            return Utils.getBytesFromAddress(deviceProp.getIdentityAddress());
        } else {
            return Utils.getByteAddress(device);
@@ -3771,7 +3785,7 @@ public class AdapterService extends Service {
    public String getIdentityAddress(String address) {
        BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(address.toUpperCase());
        DeviceProperties deviceProp = mRemoteDevices.getDeviceProperties(device);
        if (deviceProp.isConsolidated()) {
        if (deviceProp != null && deviceProp.isConsolidated()) {
            return deviceProp.getIdentityAddress();
        } else {
            return address;
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ package android.bluetooth {
    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 int disconnect();
    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 String getIdentityAddress();
    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();
+27 −0
Original line number Diff line number Diff line
@@ -1322,6 +1322,33 @@ public final class BluetoothDevice implements Parcelable, Attributable {
        return "XX:XX:XX" + getAddress().substring(8);
    }

    /**
     * Returns the identity address of this BluetoothDevice.
     * <p> For example, "00:11:22:AA:BB:CC".
     *
     * @return Bluetooth identity address as a string
     * @hide
     */
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    public @Nullable String getIdentityAddress() {
        final IBluetooth service = sService;
        if (service == null) {
            Log.e(TAG, "BT not enabled. Cannot get identity address");
            return null;
        }
        try {
            return service.getIdentityAddress(mAddress);
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
        }
        return null;
    }

    /**
     * Get the friendly Bluetooth name of the remote device.
     *
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ interface IBluetooth
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    oneway void setName(in String name, in AttributionSource attributionSource, in SynchronousResultReceiver receiver);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    String getIdentityAddress(in String address);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    oneway void getName(in AttributionSource attributionSource, in SynchronousResultReceiver receiver);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
    oneway void getNameLengthForAdvertise(in AttributionSource attributionSource, in SynchronousResultReceiver receiver);