summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/bluetooth/BluetoothHeadset.java8
-rw-r--r--core/java/android/bluetooth/IBluetoothHeadset.aidl4
-rw-r--r--core/java/android/server/BluetoothService.java2
-rw-r--r--media/java/android/media/AudioService.java18
-rw-r--r--wifi/java/android/net/wifi/WifiStateTracker.java2
5 files changed, 19 insertions, 15 deletions
diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java
index 9d633fe67721..4a91a8c90721 100644
--- a/core/java/android/bluetooth/BluetoothHeadset.java
+++ b/core/java/android/bluetooth/BluetoothHeadset.java
@@ -189,11 +189,11 @@ public final class BluetoothHeadset {
* @return One of the STATE_ return codes, or STATE_ERROR if this proxy
* object is currently not connected to the Headset service.
*/
- public int getState() {
+ public int getState(BluetoothDevice device) {
if (DBG) log("getState()");
if (mService != null) {
try {
- return mService.getState();
+ return mService.getState(device);
} catch (RemoteException e) {Log.e(TAG, e.toString());}
} else {
Log.w(TAG, "Proxy not attached to service");
@@ -271,11 +271,11 @@ public final class BluetoothHeadset {
* be made asynchornous. Returns false if this proxy object is
* not currently connected to the Headset service.
*/
- public boolean disconnectHeadset() {
+ public boolean disconnectHeadset(BluetoothDevice device) {
if (DBG) log("disconnectHeadset()");
if (mService != null) {
try {
- mService.disconnectHeadset();
+ mService.disconnectHeadset(device);
return true;
} catch (RemoteException e) {Log.e(TAG, e.toString());}
} else {
diff --git a/core/java/android/bluetooth/IBluetoothHeadset.aidl b/core/java/android/bluetooth/IBluetoothHeadset.aidl
index 57a9c066130e..d96f0ca0de8d 100644
--- a/core/java/android/bluetooth/IBluetoothHeadset.aidl
+++ b/core/java/android/bluetooth/IBluetoothHeadset.aidl
@@ -24,10 +24,10 @@ import android.bluetooth.BluetoothDevice;
* {@hide}
*/
interface IBluetoothHeadset {
- int getState();
+ int getState(in BluetoothDevice device);
BluetoothDevice getCurrentHeadset();
boolean connectHeadset(in BluetoothDevice device);
- void disconnectHeadset();
+ void disconnectHeadset(in BluetoothDevice device);
boolean isConnected(in BluetoothDevice device);
boolean startVoiceRecognition();
boolean stopVoiceRecognition();
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index fc40770ed842..672014583486 100644
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -1858,7 +1858,7 @@ public class BluetoothService extends IBluetooth.Stub {
// Rather not do this from here, but no-where else and I need this
// dump
pw.println("\n--Headset Service--");
- switch (headset.getState()) {
+ switch (headset.getState(headset.getCurrentHeadset())) {
case BluetoothHeadset.STATE_DISCONNECTED:
pw.println("getState() = STATE_DISCONNECTED");
break;
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 5c278d908ff8..bd78f9363f88 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -1092,16 +1092,20 @@ public class AudioService extends IAudioService.Stub {
private BluetoothHeadset.ServiceListener mBluetoothHeadsetServiceListener =
new BluetoothHeadset.ServiceListener() {
public void onServiceConnected() {
- if (mBluetoothHeadset != null &&
- mBluetoothHeadset.getState() == BluetoothHeadset.STATE_CONNECTED) {
- mBluetoothHeadsetConnected = true;
+ if (mBluetoothHeadset != null) {
+ BluetoothDevice device = mBluetoothHeadset.getCurrentHeadset();
+ if (mBluetoothHeadset.getState(device) == BluetoothHeadset.STATE_CONNECTED) {
+ mBluetoothHeadsetConnected = true;
+ }
}
}
public void onServiceDisconnected() {
- if (mBluetoothHeadset != null &&
- mBluetoothHeadset.getState() == BluetoothHeadset.STATE_DISCONNECTED) {
- mBluetoothHeadsetConnected = false;
- clearAllScoClients();
+ if (mBluetoothHeadset != null) {
+ BluetoothDevice device = mBluetoothHeadset.getCurrentHeadset();
+ if (mBluetoothHeadset.getState(device) == BluetoothHeadset.STATE_DISCONNECTED) {
+ mBluetoothHeadsetConnected = false;
+ clearAllScoClients();
+ }
}
}
};
diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java
index 978d821ec0db..2c8be31a22a6 100644
--- a/wifi/java/android/net/wifi/WifiStateTracker.java
+++ b/wifi/java/android/net/wifi/WifiStateTracker.java
@@ -2324,7 +2324,7 @@ public class WifiStateTracker extends NetworkStateTracker {
* @return Whether to disable coexistence mode.
*/
private boolean shouldDisableCoexistenceMode() {
- int state = mBluetoothHeadset.getState();
+ int state = mBluetoothHeadset.getState(mBluetoothHeadset.getCurrentHeadset());
return state == BluetoothHeadset.STATE_DISCONNECTED;
}
}