OSDN Git Service

clear calling identity when changing volume
authorRoboErik <epastern@google.com>
Fri, 27 Jun 2014 18:38:59 +0000 (11:38 -0700)
committerErik Pasternak <roboerik@android.com>
Fri, 27 Jun 2014 18:47:18 +0000 (18:47 +0000)
bug: 15925039

Change-Id: I8596266109fd65d7c2de5718ccdda937694befba

services/core/java/com/android/server/media/MediaSessionRecord.java

index 0a07d57..aeade50 100644 (file)
@@ -38,6 +38,7 @@ import android.media.AudioManager;
 import android.media.MediaMetadata;
 import android.media.Rating;
 import android.media.VolumeProvider;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.DeadObjectException;
 import android.os.Handler;
@@ -1122,12 +1123,22 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
 
         @Override
         public void adjustVolumeBy(int delta, int flags) {
-            MediaSessionRecord.this.adjustVolumeBy(delta, flags);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                MediaSessionRecord.this.adjustVolumeBy(delta, flags);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
 
         @Override
         public void setVolumeTo(int value, int flags) {
-            MediaSessionRecord.this.setVolumeTo(value, flags);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                MediaSessionRecord.this.setVolumeTo(value, flags);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
 
         @Override