From 23a48331571cdee029539aa9025ccff2053d8cf0 Mon Sep 17 00:00:00 2001 From: Marie Janssen Date: Tue, 24 Jan 2017 14:09:59 -0800 Subject: [PATCH] Bluetooth: add getDiscoveryEndMillis() call Method to tell when the adapter finished (or will finish) being in discovery mode. Test: compiles and still can scan Bug: 34395439 Change-Id: I41b48c2b934c0a1d5e1727cec08f3f762e3cb309 --- .../android/bluetooth/BluetoothAdapter.java | 19 +++++++++++++++++++ core/java/android/bluetooth/IBluetooth.aidl | 1 + .../bluetooth/LocalBluetoothAdapter.java | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index f9be3a1d7f0bb..9302cbc480e1a 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -1183,6 +1183,25 @@ public final class BluetoothAdapter { } } + /** + * Get the end time of the latest remote device discovery process. + * @return the latest time that the bluetooth adapter was/will be in discovery mode, + * in milliseconds since the epoch. + * This time can be in the future if {@link #startDiscovery()} has been called recently. + * @hide + */ + public long getDiscoveryEndMillis() { + try { + mServiceLock.readLock().lock(); + if (mService != null) return mService.getDiscoveryEndMillis(); + } catch (RemoteException e) { + Log.e(TAG, "", e); + } finally { + mServiceLock.readLock().unlock(); + } + return -1; + } + /** * Start the remote device discovery process. *

The discovery process usually involves an inquiry scan of about 12 diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl index 7c5458b7704b6..53fef2add3447 100644 --- a/core/java/android/bluetooth/IBluetooth.aidl +++ b/core/java/android/bluetooth/IBluetooth.aidl @@ -52,6 +52,7 @@ interface IBluetooth boolean startDiscovery(); boolean cancelDiscovery(); boolean isDiscovering(); + long getDiscoveryEndMillis(); int getAdapterConnectionState(); int getProfileConnectionState(int profile); diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java index 26836099c9de5..c4437c220c5c4 100755 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java @@ -135,6 +135,10 @@ public final class LocalBluetoothAdapter { mAdapter.setDiscoverableTimeout(timeout); } + public long getDiscoveryEndMillis() { + return mAdapter.getDiscoveryEndMillis(); + } + public void setName(String name) { mAdapter.setName(name); }