Merge "Add a system api to fetch uuids by the specific transport"

This commit is contained in:
Treehugger Robot
2021-08-23 19:23:26 +00:00
committed by Gerrit Code Review
2 changed files with 27 additions and 1 deletions

View File

@@ -1510,6 +1510,7 @@ package android.bluetooth {
public final class BluetoothDevice implements android.os.Parcelable { public final class BluetoothDevice implements android.os.Parcelable {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess(); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean fetchUuidsWithSdp(int);
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int); method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission(); method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected(); method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();

View File

@@ -1622,13 +1622,38 @@ public final class BluetoothDevice implements Parcelable {
*/ */
@RequiresPermission(Manifest.permission.BLUETOOTH) @RequiresPermission(Manifest.permission.BLUETOOTH)
public boolean fetchUuidsWithSdp() { public boolean fetchUuidsWithSdp() {
return fetchUuidsWithSdp(TRANSPORT_AUTO);
}
/**
* Perform a service discovery on the remote device to get the UUIDs supported with the
* specific transport.
*
* <p>This API is asynchronous and {@link #ACTION_UUID} intent is sent,
* with the UUIDs supported by the remote end. If there is an error
* in getting the SDP or GATT records or if the process takes a long time, or the device
* is bonding and we have its UUIDs cached, {@link #ACTION_UUID} intent is sent with the
* UUIDs that is currently present in the cache. Clients should use the {@link #getUuids}
* to get UUIDs if service discovery is not to be performed. If there is an ongoing bonding
* process, service discovery or device inquiry, the request will be queued.
*
* @param transport - provide type of transport (e.g. LE or Classic).
* @return False if the check fails, True if the process of initiating an ACL connection
* to the remote device was started or cached UUIDs will be broadcast with the specific
* transport.
*
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean fetchUuidsWithSdp(@Transport int transport) {
final IBluetooth service = sService; final IBluetooth service = sService;
if (service == null || !isBluetoothEnabled()) { if (service == null || !isBluetoothEnabled()) {
Log.e(TAG, "BT not enabled. Cannot fetchUuidsWithSdp"); Log.e(TAG, "BT not enabled. Cannot fetchUuidsWithSdp");
return false; return false;
} }
try { try {
return service.fetchRemoteUuids(this); return service.fetchRemoteUuids(this, transport);
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e(TAG, "", e); Log.e(TAG, "", e);
} }