From f987820264d8855027db9f7f107398e79c93abed Mon Sep 17 00:00:00 2001 From: Jin Seok Park Date: Thu, 24 Sep 2020 18:29:55 +0900 Subject: [PATCH] [Media ML] Replace UserManager#getEnabledProfileIds(int) Bug: 160963985 Test: Manually checked that all users (both main and managed) are being returned. Change-Id: I16379a3ad33c379e36194156bf3ad2d0be41cc22 --- .../server/media/MediaResourceMonitorService.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/media/MediaResourceMonitorService.java b/services/core/java/com/android/server/media/MediaResourceMonitorService.java index e5da9b1c178c4..fc7dd30eec495 100644 --- a/services/core/java/com/android/server/media/MediaResourceMonitorService.java +++ b/services/core/java/com/android/server/media/MediaResourceMonitorService.java @@ -28,6 +28,8 @@ import android.util.Log; import com.android.server.SystemService; +import java.util.List; + /** This class provides a system service that monitors media resource usage. */ public class MediaResourceMonitorService extends SystemService { private static final String TAG = "MediaResourceMonitor"; @@ -60,16 +62,18 @@ public class MediaResourceMonitorService extends SystemService { if (pkgNames == null) { return; } - UserManager manager = getContext().getSystemService(UserManager.class); - int[] userIds = manager.getEnabledProfileIds(ActivityManager.getCurrentUser()); - if (userIds == null || userIds.length == 0) { + UserManager manager = getContext().createContextAsUser( + UserHandle.of(ActivityManager.getCurrentUser()), /*flags=*/0) + .getSystemService(UserManager.class); + List enabledProfiles = manager.getEnabledProfiles(); + if (enabledProfiles.isEmpty()) { 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), + for (UserHandle userHandle : enabledProfiles) { + getContext().sendBroadcastAsUser(intent, userHandle, android.Manifest.permission.RECEIVE_MEDIA_RESOURCE_USAGE); } } finally {