diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index c8e9402e64424..c229869047467 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2692,7 +2692,7 @@ public abstract class PackageManager { * @return Returns an array of one or more packages assigned to the user * id, or null if there are no known packages with the given id. */ - public abstract String[] getPackagesForUid(int uid); + public abstract @Nullable String[] getPackagesForUid(int uid); /** * Retrieve the official name associated with a user id. This name is @@ -2705,7 +2705,7 @@ public abstract class PackageManager { * @return Returns a unique name for the given user id, or null if the * user id is not currently assigned. */ - public abstract String getNameForUid(int uid); + public abstract @Nullable String getNameForUid(int uid); /** * Return the user id associated with a shared user name. Multiple diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index cb3bcb087b547..75b37c2ad8e76 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -2319,9 +2319,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final String[] packages = mContext.getPackageManager().getPackagesForUid(uid); final int userId = UserHandle.getUserId(uid); - for (String packageName : packages) { - if (!mUsageStats.isAppIdle(packageName, uid, userId)) { - return false; + if (!ArrayUtils.isEmpty(packages)) { + for (String packageName : packages) { + if (!mUsageStats.isAppIdle(packageName, uid, userId)) { + return false; + } } } return true;