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); }