From 791dedb43f1350db901aa6f91215deecced7757b Mon Sep 17 00:00:00 2001 From: Rahul Sabnis Date: Wed, 29 Jan 2020 11:53:10 -0800 Subject: [PATCH] Add api BluetoothAdapter.getMostRecentlyConnectedDevices() to be able to get connected devices ordered by how recently they were connected Bug: 130984590 Test: Manual Change-Id: Ie5d0c7a8e6bc5daad5ff14064b0c65b7c4c5e6b0 --- .../android/bluetooth/BluetoothAdapter.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index 8415ecd38b756..b6d096c2524a3 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -2161,6 +2161,33 @@ public final class BluetoothAdapter { } } + /** + * Fetches a list of the most recently connected bluetooth devices ordered by how recently they + * were connected with most recently first and least recently last + * + * @return {@link List} of bonded {@link BluetoothDevice} ordered by how recently they were + * connected + * + * @hide + */ + @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) + public @NonNull List getMostRecentlyConnectedDevices() { + if (getState() != STATE_ON) { + return new ArrayList<>(); + } + try { + mServiceLock.readLock().lock(); + if (mService != null) { + return mService.getMostRecentlyConnectedDevices(); + } + } catch (RemoteException e) { + Log.e(TAG, "", e); + } finally { + mServiceLock.readLock().unlock(); + } + return new ArrayList<>(); + } + /** * Return the set of {@link BluetoothDevice} objects that are bonded * (paired) to the local adapter.