diff options
| -rw-r--r-- | services/core/java/com/android/server/am/UidObserverController.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/UidObserverController.java b/services/core/java/com/android/server/am/UidObserverController.java index 7eeec32cf24a..f58e3f85bb26 100644 --- a/services/core/java/com/android/server/am/UidObserverController.java +++ b/services/core/java/com/android/server/am/UidObserverController.java @@ -31,6 +31,7 @@ import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.Message; +import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.SystemClock; @@ -90,10 +91,12 @@ public class UidObserverController { + UUID.randomUUID().toString()); synchronized (mLock) { + final boolean canInteractAcrossUsers = ActivityManager.checkComponentPermission( + INTERACT_ACROSS_USERS_FULL, callingUid, Process.INVALID_UID, true) + == PackageManager.PERMISSION_GRANTED; mUidObservers.register(observer, new UidObserverRegistration(callingUid, callingPackage, which, cutpoint, - ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, callingUid) - == PackageManager.PERMISSION_GRANTED, uids, token)); + canInteractAcrossUsers, uids, token)); } return token; |