diff options
| author | 2020-09-08 20:58:50 +0800 | |
|---|---|---|
| committer | 2020-10-16 20:40:30 +0800 | |
| commit | 3d67a9ed887587349ddff86ec1b67bd99fc917a2 (patch) | |
| tree | af613a6e1c70c5ebc5a24020c4ddeb1457118d75 | |
| parent | faf7e4a05b9c23a55dec24f93540244ca9b86a46 (diff) | |
Remove PackageManager.getResourcesForApplicationAsUser API
To switch another user to do something should create the context of the
specified user by using Context.createContextAsUser rather than call
*AsUser API directly.
Test: make -j droid cts gts vts
Test: make -j docs
Test: atest SystemUITests \
FrameworksServicesTests:com.android.server.pm
Fix: 170928809
Bug: 72863210
Change-Id: Ie1999ba9cf61a4e85b7172240cb198111389ab73
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 25 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/SuspendedAppActivity.java | 5 |
2 files changed, 26 insertions, 4 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 1a992f519286..084b49d3fcd3 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -6195,9 +6195,30 @@ public abstract class PackageManager { public abstract Resources getResourcesForApplication(@NonNull String packageName) throws NameNotFoundException; - /** @hide */ + /** + * Please don't use this function because it is no longer supported. + * + * @deprecated Instead of using this function, please use + * {@link Context#createContextAsUser(UserHandle, int)} to create the specified user + * context, {@link Context#getPackageManager()} to get PackageManager instance for + * the specified user, and then + * {@link PackageManager#getResourcesForApplication(String)} to get the same + * Resources instance. + * @see {@link Context#createContextAsUser(android.os.UserHandle, int)} + * @see {@link Context#getPackageManager()} + * @see {@link android.content.pm.PackageManager#getResourcesForApplication(java.lang.String)} + * TODO(b/170852794): mark maxTargetSdk as {@code Build.VERSION_CODES.S} + * @hide + */ @NonNull - @UnsupportedAppUsage + @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170928809, + publicAlternatives = "Use {@code Context#createContextAsUser(UserHandle, int)}" + + " to create the relevant user context," + + " {@link android.content.Context#getPackageManager()} and" + + " {@link android.content.pm.PackageManager#getResourcesForApplication(" + + "java.lang.String)}" + + " instead.") + @Deprecated public abstract Resources getResourcesForApplicationAsUser(@NonNull String packageName, @UserIdInt int userId) throws NameNotFoundException; diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java index d8eaeda2b549..52dc7e646d29 100644 --- a/core/java/com/android/internal/app/SuspendedAppActivity.java +++ b/core/java/com/android/internal/app/SuspendedAppActivity.java @@ -191,8 +191,9 @@ public class SuspendedAppActivity extends AlertActivity mOnUnsuspend = intent.getParcelableExtra(EXTRA_UNSUSPEND_INTENT); if (mSuppliedDialogInfo != null) { try { - mSuspendingAppResources = mPm.getResourcesForApplicationAsUser(mSuspendingPackage, - mUserId); + mSuspendingAppResources = createContextAsUser( + UserHandle.of(mUserId), /* flags */ 0).getPackageManager() + .getResourcesForApplication(mSuspendedPackage); } catch (PackageManager.NameNotFoundException ne) { Slog.e(TAG, "Could not find resources for " + mSuspendingPackage, ne); } |