summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sanket Agarwal <sanketa@google.com> 2017-01-20 14:55:15 -0800
committer Sanket Agarwal <sanketa@google.com> 2017-01-20 19:30:35 -0800
commita3ae5c4e24cbc8b86c046c85f5903c06e288931c (patch)
tree5ca49afd7b30de3c23e471583b0493b80dc7d5d8
parentb8f0e69ef087798b46447a7352461a5120186646 (diff)
Change HFP Client API to support multi device
- Adds BluetoothDevice as a parameter where required - Gets rid of device management APIs that can be done via BluetoothProfiles instead Test: Manual sanity tests Bug: b/33554547 Bug: b/30984220 Change-Id: I3485ac5bfe1fcb29c774ad040fdd608e1cacb8df (cherry picked from commit 039eeb81b5ceb5a7141ae852346e054348ac2a06)
-rw-r--r--core/java/android/bluetooth/BluetoothHeadsetClient.java55
-rw-r--r--core/java/android/bluetooth/IBluetoothHeadsetClient.aidl11
2 files changed, 18 insertions, 48 deletions
diff --git a/core/java/android/bluetooth/BluetoothHeadsetClient.java b/core/java/android/bluetooth/BluetoothHeadsetClient.java
index 93790feecd11..353efffe6c2c 100644
--- a/core/java/android/bluetooth/BluetoothHeadsetClient.java
+++ b/core/java/android/bluetooth/BluetoothHeadsetClient.java
@@ -964,38 +964,6 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
}
/**
- * Accept the incoming connection.
- */
- public boolean acceptIncomingConnect(BluetoothDevice device) {
- if (DBG) log("acceptIncomingConnect");
- if (mService != null && isEnabled()) {
- try {
- return mService.acceptIncomingConnect(device);
- } catch (RemoteException e) {Log.e(TAG, e.toString());}
- } else {
- Log.w(TAG, "Proxy not attached to service");
- if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
- }
- return false;
- }
-
- /**
- * Reject the incoming connection.
- */
- public boolean rejectIncomingConnect(BluetoothDevice device) {
- if (DBG) log("rejectIncomingConnect");
- if (mService != null) {
- try {
- return mService.rejectIncomingConnect(device);
- } catch (RemoteException e) {Log.e(TAG, e.toString());}
- } else {
- Log.w(TAG, "Proxy not attached to service");
- if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
- }
- return false;
- }
-
- /**
* Returns current audio state of Audio Gateway.
*
* Note: This is an internal function and shouldn't be exposed
@@ -1016,13 +984,15 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
/**
* Sets whether audio routing is allowed.
*
+ * @param device remote device
+ * @param allowed if routing is allowed to the device
* Note: This is an internal function and shouldn't be exposed
*/
- public void setAudioRouteAllowed(boolean allowed) {
+ public void setAudioRouteAllowed(BluetoothDevice device, boolean allowed) {
if (VDBG) log("setAudioRouteAllowed");
if (mService != null && isEnabled()) {
try {
- mService.setAudioRouteAllowed(allowed);
+ mService.setAudioRouteAllowed(device, allowed);
} catch (RemoteException e) {Log.e(TAG, e.toString());}
} else {
Log.w(TAG, "Proxy not attached to service");
@@ -1032,14 +1002,15 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
/**
* Returns whether audio routing is allowed.
- *
+ * @param device remote device
+ * @return whether the command succeeded
* Note: This is an internal function and shouldn't be exposed
*/
- public boolean getAudioRouteAllowed() {
+ public boolean getAudioRouteAllowed(BluetoothDevice device) {
if (VDBG) log("getAudioRouteAllowed");
if (mService != null && isEnabled()) {
try {
- return mService.getAudioRouteAllowed();
+ return mService.getAudioRouteAllowed(device);
} catch (RemoteException e) {Log.e(TAG, e.toString());}
} else {
Log.w(TAG, "Proxy not attached to service");
@@ -1053,15 +1024,16 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
*
* It setup SCO channel with remote connected Handsfree AG device.
*
+ * @param device remote device
* @return <code>true</code> if command has been issued successfully;
* <code>false</code> otherwise;
* upon completion HFP sends {@link #ACTION_AUDIO_STATE_CHANGED}
* intent;
*/
- public boolean connectAudio() {
+ public boolean connectAudio(BluetoothDevice device) {
if (mService != null && isEnabled()) {
try {
- return mService.connectAudio();
+ return mService.connectAudio(device);
} catch (RemoteException e) {
Log.e(TAG, e.toString());
}
@@ -1077,15 +1049,16 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
*
* It tears down the SCO channel from remote AG device.
*
+ * @param device remote device
* @return <code>true</code> if command has been issued successfully;
* <code>false</code> otherwise;
* upon completion HFP sends {@link #ACTION_AUDIO_STATE_CHANGED}
* intent;
*/
- public boolean disconnectAudio() {
+ public boolean disconnectAudio(BluetoothDevice device) {
if (mService != null && isEnabled()) {
try {
- return mService.disconnectAudio();
+ return mService.disconnectAudio(device);
} catch (RemoteException e) {
Log.e(TAG, e.toString());
}
diff --git a/core/java/android/bluetooth/IBluetoothHeadsetClient.aidl b/core/java/android/bluetooth/IBluetoothHeadsetClient.aidl
index a351bd2d7076..e571b009f044 100644
--- a/core/java/android/bluetooth/IBluetoothHeadsetClient.aidl
+++ b/core/java/android/bluetooth/IBluetoothHeadsetClient.aidl
@@ -29,9 +29,6 @@ interface IBluetoothHeadsetClient {
boolean connect(in BluetoothDevice device);
boolean disconnect(in BluetoothDevice device);
- boolean acceptIncomingConnect(in BluetoothDevice device);
- boolean rejectIncomingConnect(in BluetoothDevice device);
-
List<BluetoothDevice> getConnectedDevices();
List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
int getConnectionState(in BluetoothDevice device);
@@ -58,10 +55,10 @@ interface IBluetoothHeadsetClient {
boolean getLastVoiceTagNumber(in BluetoothDevice device);
int getAudioState(in BluetoothDevice device);
- boolean connectAudio();
- boolean disconnectAudio();
- void setAudioRouteAllowed(boolean allowed);
- boolean getAudioRouteAllowed();
+ boolean connectAudio(in BluetoothDevice device);
+ boolean disconnectAudio(in BluetoothDevice device);
+ void setAudioRouteAllowed(in BluetoothDevice device, boolean allowed);
+ boolean getAudioRouteAllowed(in BluetoothDevice device);
Bundle getCurrentAgFeatures(in BluetoothDevice device);
}