diff options
| -rw-r--r-- | core/java/android/bluetooth/BluetoothHeadset.java | 8 | ||||
| -rw-r--r-- | core/java/android/bluetooth/IBluetoothHeadset.aidl | 4 | ||||
| -rw-r--r-- | core/java/android/server/BluetoothService.java | 2 | ||||
| -rw-r--r-- | media/java/android/media/AudioService.java | 18 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiStateTracker.java | 2 |
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; } } |