Merge "Le Scan: Add ambient discovery mode (1/2)" am: 4a47532570

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1629277

Change-Id: I22fb8518bd1ab6f30b3de88905c60c538685e41b
This commit is contained in:
Chienyuan Huang
2021-03-20 00:29:17 +00:00
committed by Automerger Merge Worker
2 changed files with 21 additions and 3 deletions

View File

@@ -1727,6 +1727,7 @@ package android.bluetooth.le {
}
public final class ScanSettings implements android.os.Parcelable {
field public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3; // 0x3
field public static final int SCAN_RESULT_TYPE_ABBREVIATED = 1; // 0x1
field public static final int SCAN_RESULT_TYPE_FULL = 0; // 0x0
}

View File

@@ -51,6 +51,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;
}