summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jaewan Kim <jaewan@google.com> 2016-06-23 15:58:09 +0900
committer Jaewan Kim <jaewan@google.com> 2016-06-28 17:07:21 +0900
commitefd92a34e29f0aa29c1f2d3bc910e038e85bf766 (patch)
treec114ee53a82c414a95a9cc73b8b66521b6480608
parent90b2c781ff02986f7fe495370c16d67ccd614055 (diff)
MediaResourceMonitor: Send broadcast to current users
Multiple users can be running foreground if work profile is enabled, so we need to send broadcast to all of them. Bug: 29788027 Change-Id: I80b21c97cec857bebc5fd05f0c04ca134542b4d3
-rw-r--r--services/core/java/com/android/server/media/MediaResourceMonitorService.java21
1 files changed, 15 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/media/MediaResourceMonitorService.java b/services/core/java/com/android/server/media/MediaResourceMonitorService.java
index e169d638c442..0eb8b55e417a 100644
--- a/services/core/java/com/android/server/media/MediaResourceMonitorService.java
+++ b/services/core/java/com/android/server/media/MediaResourceMonitorService.java
@@ -24,6 +24,7 @@ import android.media.IMediaResourceMonitor;
import android.os.Binder;
import android.os.RemoteException;
import android.os.UserHandle;
+import android.os.UserManager;
import android.util.Log;
import android.util.Slog;
import com.android.server.SystemService;
@@ -59,12 +60,20 @@ public class MediaResourceMonitorService extends SystemService {
final long identity = Binder.clearCallingIdentity();
try {
String pkgNames[] = getPackageNamesFromPid(pid);
- if (pkgNames != null) {
- Intent intent = new Intent(Intent.ACTION_MEDIA_RESOURCE_GRANTED);
- intent.putExtra(Intent.EXTRA_PACKAGES, pkgNames);
- intent.putExtra(Intent.EXTRA_MEDIA_RESOURCE_TYPE, type);
- getContext().sendBroadcastAsUser(intent,
- new UserHandle(ActivityManager.getCurrentUser()),
+ if (pkgNames == null) {
+ return;
+ }
+ UserManager manager = (UserManager) getContext().getSystemService(
+ Context.USER_SERVICE);
+ int[] userIds = manager.getEnabledProfileIds(ActivityManager.getCurrentUser());
+ if (userIds == null || userIds.length == 0) {
+ return;
+ }
+ Intent intent = new Intent(Intent.ACTION_MEDIA_RESOURCE_GRANTED);
+ intent.putExtra(Intent.EXTRA_PACKAGES, pkgNames);
+ intent.putExtra(Intent.EXTRA_MEDIA_RESOURCE_TYPE, type);
+ for (int userId : userIds) {
+ getContext().sendBroadcastAsUser(intent, UserHandle.of(userId),
android.Manifest.permission.RECEIVE_MEDIA_RESOURCE_USAGE);
}
} finally {