diff options
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 94a64eb55052..1e74263cb24a 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -1915,7 +1915,16 @@ public class AudioService extends IAudioService.Stub } mUserSelectedVolumeControlStream = false; } else { - mForceControlStreamClient = new ForceControlStreamClient(cb); + if (null == mForceControlStreamClient) { + mForceControlStreamClient = new ForceControlStreamClient(cb); + } else { + if (mForceControlStreamClient.getBinder() == cb) { + Log.d(TAG, "forceVolumeControlStream cb:" + cb + " is already linked."); + } else { + mForceControlStreamClient.release(); + mForceControlStreamClient = new ForceControlStreamClient(cb); + } + } } } } @@ -1955,6 +1964,10 @@ public class AudioService extends IAudioService.Stub mCb = null; } } + + public IBinder getBinder() { + return mCb; + } } private void sendBroadcastToAll(Intent intent) { |