summaryrefslogtreecommitdiff
path: root/framework/java
diff options
context:
space:
mode:
authorEtienne Ruffieux <eruffieux@google.com>2022-03-18 16:20:49 +0000
committerWilliam Escande <wescande@google.com>2022-03-25 17:59:30 +0000
commit5edeedff83cd29af01b30551eeedaf86cbd1145a (patch)
tree1725c860550ce037467cf75233ad8a2098967e1c /framework/java
parent64d8291e94e358b6450385cd3959c5e8da8b6b0f (diff)
Add Bluetooth state check as service null isn't sufficient.
When verifying if Bluetooth is up in some APIs, BluetoothDevice was only checking if the service is null. When the adapter turns off, getState can return STATE_OFF before the callback to inform the Adapter of the new state is received, so the service isn't null but the state is off for a brief period of time. Adding the state checks along with the service checks prevents being able to call an API when Bluetooth is off. Bug: 214056525 Tag: #feature Test: atest BluetoothDeviceTest Ignore-AOSP-First: Merge conflict Change-Id: Ic387a19402ec6cd3e06677f554da8a8de695b4fc
Diffstat (limited to 'framework/java')
-rw-r--r--framework/java/android/bluetooth/BluetoothDevice.java62
1 files changed, 31 insertions, 31 deletions
diff --git a/framework/java/android/bluetooth/BluetoothDevice.java b/framework/java/android/bluetooth/BluetoothDevice.java
index 4d416f2052..222df3286a 100644
--- a/framework/java/android/bluetooth/BluetoothDevice.java
+++ b/framework/java/android/bluetooth/BluetoothDevice.java
@@ -1490,7 +1490,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getIdentityAddress()");
final IBluetooth service = sService;
final String defaultValue = null;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get identity address");
} else {
try {
@@ -1520,7 +1520,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getName()");
final IBluetooth service = sService;
final String defaultValue = null;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get Remote Device name");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1555,7 +1555,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getType()");
final IBluetooth service = sService;
final int defaultValue = DEVICE_TYPE_UNKNOWN;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get Remote Device type");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1584,7 +1584,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getAlias()");
final IBluetooth service = sService;
final String defaultValue = null;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get Remote Device Alias");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1645,7 +1645,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setAlias(" + alias + ")");
final IBluetooth service = sService;
final int defaultValue = BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot set Remote Device name");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1679,7 +1679,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getBatteryLevel()");
final IBluetooth service = sService;
final int defaultValue = BATTERY_LEVEL_BLUETOOTH_OFF;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1774,7 +1774,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("createBondOutOfBand()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "BT not enabled, createBondOutOfBand failed");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (NULL_MAC_ADDRESS.equals(mAddress)) {
@@ -1807,7 +1807,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("isBondingInitiatedLocally()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "BT not enabled, isBondingInitiatedLocally failed");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1834,7 +1834,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("cancelBondProcess()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot cancel Remote Device bond");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1867,7 +1867,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("removeBond()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot remove Remote Device bond");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1914,7 +1914,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getBondState() uncached");
final IBluetooth service = sService;
final int defaultValue = BOND_NONE;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get bond state");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -1986,7 +1986,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("canBondWithoutDialog, device: " + this);
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot check if we can skip pairing dialog");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2040,7 +2040,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
}
final IBluetooth service = sService;
final int defaultValue = BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot connect to remote device.");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2087,7 +2087,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
}
final IBluetooth service = sService;
final int defaultValue = BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot disconnect to remote device.");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2119,7 +2119,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("isConnected()");
final IBluetooth service = sService;
final int defaultValue = CONNECTION_STATE_DISCONNECTED;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2151,7 +2151,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("isEncrypted()");
final IBluetooth service = sService;
final int defaultValue = CONNECTION_STATE_DISCONNECTED;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2180,7 +2180,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getBluetoothClass()");
final IBluetooth service = sService;
final int defaultValue = 0;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot get Bluetooth Class");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2323,7 +2323,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("sdpSearch()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot query remote device sdp records");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2350,7 +2350,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setPin()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot set Remote Device pin");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2396,7 +2396,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setPairingConfirmation()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot set pairing confirmation");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2435,7 +2435,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getPhonebookAccessPermission()");
final IBluetooth service = sService;
final int defaultValue = ACCESS_UNKNOWN;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2482,7 +2482,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setSilenceMode()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
throw new IllegalStateException("Bluetooth is not turned ON");
} else {
try {
@@ -2512,7 +2512,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("isInSilenceMode()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
throw new IllegalStateException("Bluetooth is not turned ON");
} else {
try {
@@ -2543,7 +2543,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setPhonebookAccessPermission()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2572,7 +2572,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getMessageAccessPermission()");
final IBluetooth service = sService;
final int defaultValue = ACCESS_UNKNOWN;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2609,7 +2609,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setMessageAccessPermission()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2638,7 +2638,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getSimAccessPermission()");
final IBluetooth service = sService;
final int defaultValue = ACCESS_UNKNOWN;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -2671,7 +2671,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setSimAccessPermission()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.w(TAG, "Proxy not attached to service");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -3182,7 +3182,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setMetadata()");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "Bluetooth is not enabled. Cannot set metadata");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (value.length > METADATA_MAX_LENGTH) {
@@ -3217,7 +3217,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("getMetadata()");
final IBluetooth service = sService;
final byte[] defaultValue = null;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "Bluetooth is not enabled. Cannot get metadata");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
@@ -3260,7 +3260,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log("setLowLatencyAudioAllowed(" + allowed + ")");
final IBluetooth service = sService;
final boolean defaultValue = false;
- if (service == null) {
+ if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "Bluetooth is not enabled. Cannot allow low latency");
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {