Merge "Expose isCISCentralSupported() and isLePeriodicAdvertisingSyncTransferSenderSupported() API" am: 29f37405b0 am: 61d4e7ca47 am: fd2248fca7

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

Change-Id: If5313414ef6cee3b9e95ba70ffb32681feca31a9
This commit is contained in:
Treehugger Robot
2021-10-28 06:54:10 +00:00
committed by Automerger Merge Worker
3 changed files with 68 additions and 0 deletions

View File

@@ -8648,12 +8648,14 @@ package android.bluetooth {
method public android.bluetooth.BluetoothDevice getRemoteDevice(byte[]);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public int getScanMode();
method public int getState();
method public int isCisCentralSupported();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean isDiscovering();
method public boolean isEnabled();
method public boolean isLe2MPhySupported();
method public boolean isLeCodedPhySupported();
method public boolean isLeExtendedAdvertisingSupported();
method public boolean isLePeriodicAdvertisingSupported();
method public int isLePeriodicAdvertisingSyncTransferSenderSupported();
method public boolean isMultipleAdvertisementSupported();
method public boolean isOffloadedFilteringSupported();
method public boolean isOffloadedScanBatchingSupported();
@@ -9506,6 +9508,7 @@ package android.bluetooth {
field public static final int ERROR_BLUETOOTH_NOT_ALLOWED = 2; // 0x2
field public static final int ERROR_BLUETOOTH_NOT_ENABLED = 1; // 0x1
field public static final int ERROR_DEVICE_NOT_BONDED = 3; // 0x3
field public static final int ERROR_FEATURE_NOT_SUPPORTED = 8; // 0x8
field public static final int ERROR_MISSING_BLUETOOTH_CONNECT_PERMISSION = 6; // 0x6
field public static final int ERROR_UNKNOWN = 2147483647; // 0x7fffffff
field public static final int SUCCESS = 0; // 0x0

View File

@@ -2272,6 +2272,66 @@ public final class BluetoothAdapter {
return false;
}
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(value = {
BluetoothStatusCodes.SUCCESS,
BluetoothStatusCodes.ERROR_UNKNOWN,
BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
BluetoothStatusCodes.ERROR_FEATURE_NOT_SUPPORTED,
})
public @interface LeFeatureReturnValues {}
/**
* Returns {@link BluetoothStatusCodes#SUCCESS} if LE Connected Isochronous Stream Central
* feature is supported, returns {@link BluetoothStatusCodes#ERROR_FEATURE_NOT_SUPPORTED} if
* the feature is not supported or an error code.
*
* @return whether the chipset supports the LE Connected Isochronous Stream Central feature
*/
@RequiresNoPermission
public @LeFeatureReturnValues int isCisCentralSupported() {
if (!getLeAccess()) {
return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
}
try {
mServiceLock.readLock().lock();
if (mService != null) {
return mService.isCisCentralSupported();
}
} catch (RemoteException e) {
e.rethrowFromSystemServer();
} finally {
mServiceLock.readLock().unlock();
}
return BluetoothStatusCodes.ERROR_UNKNOWN;
}
/**
* Returns {@link BluetoothStatusCodes#SUCCESS} if LE Periodic Advertising Sync Transfer Sender
* feature is supported, returns {@link BluetoothStatusCodes#ERROR_FEATURE_NOT_SUPPORTED} if the
* feature is not supported or an error code
*
* @return whether the chipset supports the LE Periodic Advertising Sync Transfer Sender feature
*/
@RequiresNoPermission
public @LeFeatureReturnValues int isLePeriodicAdvertisingSyncTransferSenderSupported() {
if (!getLeAccess()) {
return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
}
try {
mServiceLock.readLock().lock();
if (mService != null) {
return mService.isLePeriodicAdvertisingSyncTransferSenderSupported();
}
} catch (RemoteException e) {
e.rethrowFromSystemServer();
} finally {
mServiceLock.readLock().unlock();
}
return BluetoothStatusCodes.ERROR_UNKNOWN;
}
/**
* Return the maximum LE advertising data length in bytes,
* if LE Extended Advertising feature is supported, 0 otherwise.

View File

@@ -78,6 +78,11 @@ public final class BluetoothStatusCodes {
*/
public static final int ERROR_MISSING_BLUETOOTH_SCAN_PERMISSION = 7;
/**
* Error code indicating that the feature is not supported.
*/
public static final int ERROR_FEATURE_NOT_SUPPORTED = 8;
/**
* If another application has already requested {@link OobData} then another fetch will be
* disallowed until the callback is removed.