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

Commit 7934d71b authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by android-build-merger
Browse files

Merge "Bluetooth 5 feature check API (1/2)"

am: eed95db0

Change-Id: I59cf0e8f496e6a1201a3a6ec832c33cd1c8972df
parents 01369218 eed95db0
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();

    /**