summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorChienyuan Huang <chienyuanhuang@google.com>2021-03-20 00:26:04 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-03-20 00:26:04 +0000
commit4a47532570e9f67e669a1af30185e20b9ce748ec (patch)
treec5f0f164878a6ea873a6cdedc6e26c51338e59fe /core/java
parentefad4dcd74976f0b051a4673b3cb9fc5fbb75c5a (diff)
parentf757d2fa69546fc25e36ebef1b8e49c6afc2ece5 (diff)
Merge "Le Scan: Add ambient discovery mode (1/2)"
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/bluetooth/le/ScanSettings.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/core/java/android/bluetooth/le/ScanSettings.java b/core/java/android/bluetooth/le/ScanSettings.java
index 504118ec5da8..368d1eecade4 100644
--- a/core/java/android/bluetooth/le/ScanSettings.java
+++ b/core/java/android/bluetooth/le/ScanSettings.java
@@ -52,6 +52,16 @@ public final class ScanSettings implements Parcelable {
public static final int SCAN_MODE_LOW_LATENCY = 2;
/**
+ * Perform Bluetooth LE scan in ambient discovery mode. This mode has lower duty cycle and more
+ * aggressive scan interval than balanced mode that provides a good trade-off between scan
+ * latency and power consumption.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3;
+
+ /**
* Trigger a callback for every Bluetooth advertisement found that matches the filter criteria.
* If no filter is active, all advertisement packets are reported.
*/
@@ -276,10 +286,17 @@ public final class ScanSettings implements Parcelable {
* @throws IllegalArgumentException If the {@code scanMode} is invalid.
*/
public Builder setScanMode(int scanMode) {
- if (scanMode < SCAN_MODE_OPPORTUNISTIC || scanMode > SCAN_MODE_LOW_LATENCY) {
- throw new IllegalArgumentException("invalid scan mode " + scanMode);
+ switch (scanMode) {
+ case SCAN_MODE_OPPORTUNISTIC:
+ case SCAN_MODE_LOW_POWER:
+ case SCAN_MODE_BALANCED:
+ case SCAN_MODE_LOW_LATENCY:
+ case SCAN_MODE_AMBIENT_DISCOVERY:
+ mScanMode = scanMode;
+ break;
+ default:
+ throw new IllegalArgumentException("invalid scan mode " + scanMode);
}
- mScanMode = scanMode;
return this;
}