summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/le/AdvertisingSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/java/android/bluetooth/le/AdvertisingSet.java')
-rw-r--r--framework/java/android/bluetooth/le/AdvertisingSet.java55
1 files changed, 39 insertions, 16 deletions
diff --git a/framework/java/android/bluetooth/le/AdvertisingSet.java b/framework/java/android/bluetooth/le/AdvertisingSet.java
index bbdb6953af..cad62c3cb2 100644
--- a/framework/java/android/bluetooth/le/AdvertisingSet.java
+++ b/framework/java/android/bluetooth/le/AdvertisingSet.java
@@ -16,6 +16,8 @@
package android.bluetooth.le;
+import static android.bluetooth.le.BluetoothLeUtils.getSyncTimeout;
+
import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.bluetooth.BluetoothAdapter;
@@ -27,6 +29,10 @@ import android.content.AttributionSource;
import android.os.RemoteException;
import android.util.Log;
+import com.android.modules.utils.SynchronousResultReceiver;
+
+import java.util.concurrent.TimeoutException;
+
/**
* This class provides a way to control single Bluetooth LE advertising instance.
* <p>
@@ -75,9 +81,11 @@ public final class AdvertisingSet {
public void enableAdvertising(boolean enable, int duration,
int maxExtendedAdvertisingEvents) {
try {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
mGatt.enableAdvertisingSet(mAdvertiserId, enable, duration,
- maxExtendedAdvertisingEvents, mAttributionSource);
- } catch (RemoteException e) {
+ maxExtendedAdvertisingEvents, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -99,8 +107,10 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setAdvertisingData(AdvertiseData advertiseData) {
try {
- mGatt.setAdvertisingData(mAdvertiserId, advertiseData, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setAdvertisingData(mAdvertiserId, advertiseData, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -119,8 +129,10 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setScanResponseData(AdvertiseData scanResponse) {
try {
- mGatt.setScanResponseData(mAdvertiserId, scanResponse, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setScanResponseData(mAdvertiserId, scanResponse, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -137,8 +149,10 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setAdvertisingParameters(AdvertisingSetParameters parameters) {
try {
- mGatt.setAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -153,8 +167,11 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingParameters(PeriodicAdvertisingParameters parameters) {
try {
- mGatt.setPeriodicAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setPeriodicAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource,
+ recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -174,8 +191,10 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingData(AdvertiseData periodicData) {
try {
- mGatt.setPeriodicAdvertisingData(mAdvertiserId, periodicData, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setPeriodicAdvertisingData(mAdvertiserId, periodicData, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -192,8 +211,10 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingEnabled(boolean enable) {
try {
- mGatt.setPeriodicAdvertisingEnable(mAdvertiserId, enable, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.setPeriodicAdvertisingEnable(mAdvertiserId, enable, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}
@@ -212,8 +233,10 @@ public final class AdvertisingSet {
})
public void getOwnAddress() {
try {
- mGatt.getOwnAddress(mAdvertiserId, mAttributionSource);
- } catch (RemoteException e) {
+ final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ mGatt.getOwnAddress(mAdvertiserId, mAttributionSource, recv);
+ recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
+ } catch (TimeoutException | RemoteException e) {
Log.e(TAG, "remote exception - ", e);
}
}