From f9e3e9e3dd3250d0a97a75a743f2941f13b87fcd Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 1 Jun 2015 12:14:28 -0700 Subject: [PATCH] Expose a few system APIs for BLE scan only mode. Bug: 21562349 Change-Id: Ifc58efcf01edac5b4f9e5266adb966e7bc492209 --- api/system-current.txt | 4 +++ .../android/bluetooth/BluetoothAdapter.java | 26 +++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index b4315fe1ecb28..ed8d5368a651d 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6486,7 +6486,9 @@ package android.bluetooth { method public static boolean checkBluetoothAddress(java.lang.String); method public void closeProfileProxy(int, android.bluetooth.BluetoothProfile); method public boolean disable(); + method public boolean disableBLE(); method public boolean enable(); + method public boolean enableBLE(); method public java.lang.String getAddress(); method public android.bluetooth.le.BluetoothLeAdvertiser getBluetoothLeAdvertiser(); method public android.bluetooth.le.BluetoothLeScanner getBluetoothLeScanner(); @@ -6502,6 +6504,7 @@ package android.bluetooth { method public boolean isBleScanAlwaysAvailable(); method public boolean isDiscovering(); method public boolean isEnabled(); + method public boolean isLeEnabled(); method public boolean isMultipleAdvertisementSupported(); method public boolean isOffloadedFilteringSupported(); method public boolean isOffloadedScanBatchingSupported(); @@ -6512,6 +6515,7 @@ package android.bluetooth { method public deprecated boolean startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback); method public deprecated boolean startLeScan(java.util.UUID[], android.bluetooth.BluetoothAdapter.LeScanCallback); method public deprecated void stopLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback); + field public static final java.lang.String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED"; field public static final java.lang.String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED"; field public static final java.lang.String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED"; field public static final java.lang.String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED"; diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index b22b914686db5..8107a97e9d841 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -410,6 +410,7 @@ public final class BluetoothAdapter { * Broadcast Action: The Bluetooth adapter state has changed in LE only mode. * @hide */ + @SystemApi public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED"; @@ -620,17 +621,18 @@ public final class BluetoothAdapter { * @return true if the local Bluetooth LE adapter is turned on * @hide */ - public boolean isLeEnabled() { - final int state = getLeState(); - if (state == BluetoothAdapter.STATE_ON) { - if (DBG) Log.d (TAG, "STATE_ON"); - } else if (state == BluetoothAdapter.STATE_BLE_ON) { - if (DBG) Log.d (TAG, "STATE_BLE_ON"); - } else { - if (DBG) Log.d (TAG, "STATE_OFF"); - return false; - } - return true; + @SystemApi + public boolean isLeEnabled() { + final int state = getLeState(); + if (state == BluetoothAdapter.STATE_ON) { + if (DBG) Log.d (TAG, "STATE_ON"); + } else if (state == BluetoothAdapter.STATE_BLE_ON) { + if (DBG) Log.d (TAG, "STATE_BLE_ON"); + } else { + if (DBG) Log.d (TAG, "STATE_OFF"); + return false; + } + return true; } /** @@ -680,6 +682,7 @@ public final class BluetoothAdapter { * immediate error * @hide */ + @SystemApi public boolean disableBLE() { if (!isBleScanAlwaysAvailable()) return false; @@ -742,6 +745,7 @@ public final class BluetoothAdapter { * immediate error * @hide */ + @SystemApi public boolean enableBLE() { if (!isBleScanAlwaysAvailable()) return false;