Skip to content

Commit ae5839d

Browse files
author
Matthew Xie
committed
Make public APIs of ACTION_UUID, getUuids, and fetchUuidsWithSdp
Give APP a way to find out if a service is supported by a remote device bug 5487202 Change-Id: Ie778b3227f29a24cdf61fa0365b82f9a45d439dc
1 parent 2333a02 commit ae5839d

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

api/current.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4472,10 +4472,12 @@ package android.bluetooth {
44724472
method public android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
44734473
method public android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
44744474
method public int describeContents();
4475+
method public boolean fetchUuidsWithSdp();
44754476
method public java.lang.String getAddress();
44764477
method public android.bluetooth.BluetoothClass getBluetoothClass();
44774478
method public int getBondState();
44784479
method public java.lang.String getName();
4480+
method public android.os.ParcelUuid[] getUuids();
44794481
method public void writeToParcel(android.os.Parcel, int);
44804482
field public static final java.lang.String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
44814483
field public static final java.lang.String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
@@ -4484,6 +4486,7 @@ package android.bluetooth {
44844486
field public static final java.lang.String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
44854487
field public static final java.lang.String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
44864488
field public static final java.lang.String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED";
4489+
field public static final java.lang.String ACTION_UUID = "android.bleutooth.device.action.UUID";
44874490
field public static final int BOND_BONDED = 12; // 0xc
44884491
field public static final int BOND_BONDING = 11; // 0xb
44894492
field public static final int BOND_NONE = 10; // 0xa

core/java/android/bluetooth/BluetoothDevice.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,10 @@ public final class BluetoothDevice implements Parcelable {
249249
* <p> Always contains the extra field {@link #EXTRA_DEVICE}
250250
* <p> Always contains the extra filed {@link #EXTRA_UUID}
251251
* <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
252-
* @hide
253252
*/
254253
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
255254
public static final String ACTION_UUID =
256-
"android.bleutooth.device.action.UUID";
255+
"android.bluetooth.device.action.UUID";
257256

258257
/**
259258
* Broadcast Action: Indicates a failure to retrieve the name of a remote
@@ -770,7 +769,18 @@ public boolean setTrust(boolean value) {
770769
return false;
771770
}
772771

773-
/** @hide */
772+
/**
773+
* Returns the supported features (UUIDs) of the remote device.
774+
*
775+
* <p>This method does not start a service discovery procedure to retrieve the UUIDs
776+
* from the remote device. Instead, the local cached copy of the service
777+
* UUIDs are returned.
778+
* <p>Use {@link #fetchUuidsWithSdp} if fresh UUIDs are desired.
779+
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
780+
*
781+
* @return the supported features (UUIDs) of the remote device,
782+
* or null on error
783+
*/
774784
public ParcelUuid[] getUuids() {
775785
try {
776786
return sService.getRemoteUuids(mAddress);
@@ -779,18 +789,19 @@ public ParcelUuid[] getUuids() {
779789
}
780790

781791
/**
782-
* Perform a SDP query on the remote device to get the UUIDs
783-
* supported. This API is asynchronous and an Intent is sent,
784-
* with the UUIDs supported by the remote end. If there is an error
785-
* in getting the SDP records or if the process takes a long time,
786-
* an Intent is sent with the UUIDs that is currently present in the
787-
* cache. Clients should use the {@link #getUuids} to get UUIDs
788-
* is SDP is not to be performed.
792+
* Perform a service discovery on the remote device to get the UUIDs supported.
793+
*
794+
* <p>This API is asynchronous and {@link #ACTION_UUID} intent is sent,
795+
* with the UUIDs supported by the remote end. If there is an error
796+
* in getting the SDP records or if the process takes a long time,
797+
* {@link #ACTION_UUID} intent is sent with the UUIDs that is currently
798+
* present in the cache. Clients should use the {@link #getUuids} to get UUIDs
799+
* if service discovery is not to be performed.
800+
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
789801
*
790-
* @return False if the sanity check fails, True if the process
802+
* @return False if the sanity check fails, True if the process
791803
* of initiating an ACL connection to the remote device
792804
* was started.
793-
* @hide
794805
*/
795806
public boolean fetchUuidsWithSdp() {
796807
try {

0 commit comments

Comments
 (0)