diff --git a/services/core/java/com/android/server/app/GameManagerService.java b/services/core/java/com/android/server/app/GameManagerService.java index 4df8cb7d827de..d7fc3d4a7123e 100644 --- a/services/core/java/com/android/server/app/GameManagerService.java +++ b/services/core/java/com/android/server/app/GameManagerService.java @@ -120,10 +120,12 @@ import java.io.PrintWriter; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * Service to manage game related features. @@ -1046,6 +1048,21 @@ public final class GameManagerService extends IGameManagerService.Stub { } private boolean isPackageGame(String packageName, @UserIdInt int userId) { + final String gameList = Settings.System.getStringForUser( + mContext.getContentResolver(), + "gamespace_game_list", + userId); + + final Set gamePkgs = (gameList == null || gameList.isEmpty()) + ? Collections.emptySet() + : Arrays.stream(gameList.split(";")) + .map(entry -> entry.split("=")[0]) + .collect(Collectors.toSet()); + + if (gamePkgs.contains(packageName)) { + return true; + } + try { final ApplicationInfo applicationInfo = mPackageManager .getApplicationInfoAsUser(packageName, PackageManager.MATCH_ALL, userId);