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

Commit 60d90308 authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by Andre Eisenbach
Browse files

Bluetooth 5 feature check API (1/2)

Bug: 30622771
Test: manual
Change-Id: I90e2efe989745c07c2f2fb8f4ea5bc3b718382f6
(cherry picked from commit 79d66495c32996a5b532328571bf6ceecca70ca5)
parent 0849d40e
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
@@ -1384,6 +1384,78 @@ public final class BluetoothAdapter {
        return false;
    }

    /**
     * Return true if LE 2M PHY feature is supported.
     *
     * @return true if chipset supports LE 2M PHY feature
     */
    public boolean isLe2MPhySupported() {
        if (!getLeAccess()) return false;
        try {
            mServiceLock.readLock().lock();
            if (mService != null) return mService.isLe2MPhySupported();
        } catch (RemoteException e) {
            Log.e(TAG, "failed to get isExtendedAdvertisingSupported, error: ", e);
        } finally {
            mServiceLock.readLock().unlock();
        }
        return false;
    }

    /**
     * Return true if LE Coded PHY feature is supported.
     *
     * @return true if chipset supports LE Coded PHY feature
     */
    public boolean isLeCodedPhySupported() {
        if (!getLeAccess()) return false;
        try {
            mServiceLock.readLock().lock();
            if (mService != null) return mService.isLeCodedPhySupported();
        } catch (RemoteException e) {
            Log.e(TAG, "failed to get isLeCodedPhySupported, error: ", e);
        } finally {
            mServiceLock.readLock().unlock();
        }
        return false;
    }

    /**
     * Return true if LE Periodic Advertising feature is supported.
     *
     * @return true if chipset supports LE Periodic Advertising feature
     */
    public boolean isLeExtendedAdvertisingSupported() {
        if (!getLeAccess()) return false;
        try {
            mServiceLock.readLock().lock();
            if (mService != null) return mService.isLeExtendedAdvertisingSupported();
        } catch (RemoteException e) {
            Log.e(TAG, "failed to get isLeExtendedAdvertisingSupported, error: ", e);
        } finally {
            mServiceLock.readLock().unlock();
        }
        return false;
    }

    /**
     * Return true if LE Periodic Advertising feature is supported.
     *
     * @return true if chipset supports LE Periodic Advertising feature
     */
    public boolean isLePeriodicAdvertisingSupported() {
        if (!getLeAccess()) return false;
        try {
            mServiceLock.readLock().lock();
            if (mService != null) return mService.isLePeriodicAdvertisingSupported();
        } catch (RemoteException e) {
            Log.e(TAG, "failed to get isLePeriodicAdvertisingSupported, error: ", e);
        } finally {
            mServiceLock.readLock().unlock();
        }
        return false;
    }

    /**
     * Return true if hardware has entries available for matching beacons
     *
+4 −0
Original line number Diff line number Diff line
@@ -104,6 +104,10 @@ interface IBluetooth
    boolean isOffloadedFilteringSupported();
    boolean isOffloadedScanBatchingSupported();
    boolean isActivityAndEnergyReportingSupported();
    boolean isLe2MPhySupported();
    boolean isLeCodedPhySupported();
    boolean isLeExtendedAdvertisingSupported();
    boolean isLePeriodicAdvertisingSupported();
    BluetoothActivityEnergyInfo reportActivityInfo();

    /**