summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author ot_chenqi.c <ot_chenqi.c@mediatek.com> 2024-04-02 10:46:23 +0800
committer Shunkai Yao <yaoshunkai@google.com> 2024-07-10 16:37:07 +0000
commitad92d12079cc1aff49cd27f8b5470347a5e36dcb (patch)
treeade9ef998b7118bd3d5f10d0e26e127f19783cd5
parentd5658e260d85af41ead884d46c4621b22ca2f1ff (diff)
Fix unbind service error for MusicFxHelper
Unbinding an unbound service will cause an exception, for example: service not registered: com.android.server.audio.MusicFxHelper. Flag: EXEMPT bugfix Bug: 332454067 Bug: 350408926 Test: run MTBF test and no crash Test: MusicFx panel enable/disable Test: atest com.android.server.audio.MusicFxHelperTest Change-Id: Ic519221b2bb7d28e5378a995519f8b3269d03c70 Merged-In: Ic519221b2bb7d28e5378a995519f8b3269d03c70
-rw-r--r--services/core/java/com/android/server/audio/MusicFxHelper.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/audio/MusicFxHelper.java b/services/core/java/com/android/server/audio/MusicFxHelper.java
index ba453101046f..cf0b2ae15618 100644
--- a/services/core/java/com/android/server/audio/MusicFxHelper.java
+++ b/services/core/java/com/android/server/audio/MusicFxHelper.java
@@ -70,6 +70,8 @@ public class MusicFxHelper {
// The binder token identifying the UidObserver registration.
private IBinder mUidObserverToken = null;
+ private boolean mIsBound;
+
// Package name and list of open audio sessions for this package
private static class PackageSessions {
String mPackageName;
@@ -109,6 +111,7 @@ public class MusicFxHelper {
if (procState > ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) {
Intent bindIntent = new Intent().setClassName(mMusicFxPackageName,
"com.android.musicfx.KeepAliveService");
+ mIsBound = true;
mContext.bindServiceAsUser(
bindIntent, mMusicFxBindConnection, Context.BIND_AUTO_CREATE,
UserHandle.of(getCurrentUserId()));
@@ -157,9 +160,12 @@ public class MusicFxHelper {
Log.e(TAG, "RemoteException with unregisterUidObserver: " + e);
}
mUidObserverToken = null;
- mContext.unbindService(mMusicFxBindConnection);
- Log.i(TAG, "last session closed, unregister UID observer, and unbind "
- + mMusicFxPackageName);
+ if (mIsBound) {
+ mContext.unbindService(mMusicFxBindConnection);
+ mIsBound = false;
+ Log.i(TAG, "last session closed, unregister UID observer, and unbind "
+ + mMusicFxPackageName);
+ }
}
}
}