Merge "Add SystemApi to setActiveDevice in BluetoothAdapter"
This commit is contained in:
@@ -1260,10 +1260,14 @@ package android.bluetooth {
|
||||
method public boolean isBleScanAlwaysAvailable();
|
||||
method public boolean isLeEnabled();
|
||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
|
||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setActiveDevice(@Nullable android.bluetooth.BluetoothDevice, int);
|
||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int, int);
|
||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int);
|
||||
field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
|
||||
field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
|
||||
field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
|
||||
field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0
|
||||
field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1
|
||||
}
|
||||
|
||||
public static interface BluetoothAdapter.OnMetadataChangedListener {
|
||||
|
||||
@@ -456,6 +456,37 @@ public final class BluetoothAdapter {
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface IoCapability {}
|
||||
|
||||
/** @hide */
|
||||
@IntDef(prefix = "ACTIVE_DEVICE_", value = {ACTIVE_DEVICE_AUDIO,
|
||||
ACTIVE_DEVICE_PHONE_CALL, ACTIVE_DEVICE_ALL})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ActiveDeviceUse {}
|
||||
|
||||
/**
|
||||
* Use the specified device for audio (a2dp and hearing aid profile)
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ACTIVE_DEVICE_AUDIO = 0;
|
||||
|
||||
/**
|
||||
* Use the specified device for phone calls (headset profile and hearing
|
||||
* aid profile)
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ACTIVE_DEVICE_PHONE_CALL = 1;
|
||||
|
||||
/**
|
||||
* Use the specified device for a2dp, hearing aid profile, and headset profile
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ACTIVE_DEVICE_ALL = 2;
|
||||
|
||||
/**
|
||||
* Broadcast Action: The local Bluetooth adapter has started the remote
|
||||
* device discovery process.
|
||||
@@ -1733,6 +1764,41 @@ public final class BluetoothAdapter {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param device is the remote bluetooth device
|
||||
* @param profiles represents the purpose for which we are setting this as the active device.
|
||||
* Possible values are:
|
||||
* {@link BluetoothAdapter#ACTIVE_DEVICE_AUDIO},
|
||||
* {@link BluetoothAdapter#ACTIVE_DEVICE_PHONE_CALL},
|
||||
* {@link BluetoothAdapter#ACTIVE_DEVICE_ALL}
|
||||
* @return false on immediate error, true otherwise
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||
public boolean setActiveDevice(@Nullable BluetoothDevice device,
|
||||
@ActiveDeviceUse int profiles) {
|
||||
if (profiles != ACTIVE_DEVICE_AUDIO && profiles != ACTIVE_DEVICE_PHONE_CALL
|
||||
&& profiles != ACTIVE_DEVICE_ALL) {
|
||||
Log.e(TAG, "Invalid profiles param value in setActiveDevice");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
mServiceLock.readLock().lock();
|
||||
if (mService != null) {
|
||||
return mService.setActiveDevice(device, profiles);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "", e);
|
||||
} finally {
|
||||
mServiceLock.readLock().unlock();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Connects all enabled and supported bluetooth profiles between the local and remote device
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user