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

Commit 1c7a59f1 authored by Angela Wang's avatar Angela Wang
Browse files

Scan LE audio hearing aids in HearingDevicePairingDetail

Only ASHA hearing aids can be scanned from HearingDevicePairingDetail.
Add the ability to scan LE audio hearing aids (which supports HAP
profile) in hearing device page.

Since we're not sure what will hearing aids vendors organize the data in
the advertisement packet, add the filters as long as it's possible to
increase coverage when scanning hearing aid devices.

Bug: 286995224
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingDevicePairingDetailTest
Change-Id: I8faf85f38962653cf9bc988b02f3a4e5f2849b81
parent e9929276
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ import com.android.settings.R;
import com.android.settings.bluetooth.BluetoothDevicePairingDetailBase;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;

import java.util.Collections;
import java.util.ArrayList;
import java.util.List;

/**
 * HearingDevicePairingDetail is a page to scan hearing devices. This page shows scanning icons and
@@ -42,10 +43,16 @@ public class HearingDevicePairingDetail extends BluetoothDevicePairingDetailBase

    public HearingDevicePairingDetail() {
        super();
        final ScanFilter filter = new ScanFilter.Builder()
                .setServiceData(BluetoothUuid.HEARING_AID, new byte[]{0}, new byte[]{0})
                .build();
        setFilter(Collections.singletonList(filter));
        final List<ScanFilter> filterList = new ArrayList<>();
        // Filters for ASHA hearing aids
        filterList.add(new ScanFilter.Builder().setServiceUuid(BluetoothUuid.HEARING_AID).build());
        filterList.add(new ScanFilter.Builder()
                .setServiceData(BluetoothUuid.HEARING_AID, new byte[0]).build());
        // Filters for LE audio hearing aids
        filterList.add(new ScanFilter.Builder().setServiceUuid(BluetoothUuid.HAS).build());
        filterList.add(new ScanFilter.Builder()
                .setServiceData(BluetoothUuid.HAS, new byte[0]).build());
        setFilter(filterList);
    }

    @Override