Loading core/java/android/app/ApplicationPackageManager.java +39 −13 Original line number Diff line number Diff line Loading @@ -126,8 +126,14 @@ public class ApplicationPackageManager extends PackageManager { @Override public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException { return getPackageInfoAsUser(packageName, flags, mContext.getUserId()); } @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { PackageInfo pi = mPM.getPackageInfo(packageName, flags, mContext.getUserId()); PackageInfo pi = mPM.getPackageInfo(packageName, flags, userId); if (pi != null) { return pi; } Loading Loading @@ -1338,7 +1344,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(null, null, null, VerificationParams.NO_UID, null); installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, null); installerPackageName, verificationParams, null, UserHandle.myUserId()); } @Override Loading @@ -1348,7 +1354,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, VerificationParams.NO_UID, manifestDigest); installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, encryptionParams); installerPackageName, verificationParams, encryptionParams, UserHandle.myUserId()); } @Override Loading @@ -1356,15 +1362,23 @@ public class ApplicationPackageManager extends PackageManager { IPackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, encryptionParams); installerPackageName, verificationParams, encryptionParams, UserHandle.myUserId()); } @Override public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName) { installPackageAsUser(packageURI, observer, flags, installerPackageName, UserHandle.myUserId()); } @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId) { final VerificationParams verificationParams = new VerificationParams(null, null, null, VerificationParams.NO_UID, null); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, null); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, null, userId); } @Override Loading @@ -1375,7 +1389,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, VerificationParams.NO_UID, manifestDigest); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); encryptionParams, UserHandle.myUserId()); } @Override Loading @@ -1383,12 +1397,13 @@ public class ApplicationPackageManager extends PackageManager { PackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); encryptionParams, UserHandle.myUserId()); } private void installCommon(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { VerificationParams verificationParams, ContainerEncryptionParams encryptionParams, int userId) { if (!"file".equals(packageURI.getScheme())) { throw new UnsupportedOperationException("Only file:// URIs are supported"); } Loading @@ -1398,17 +1413,22 @@ public class ApplicationPackageManager extends PackageManager { final String originPath = packageURI.getPath(); try { mPM.installPackage(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null); mPM.installPackageAsUser(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null, userId); } catch (RemoteException ignored) { } } @Override public int installExistingPackage(String packageName) public int installExistingPackage(String packageName) throws NameNotFoundException { return installExistingPackageAsUser(packageName, UserHandle.myUserId()); } @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { try { int res = mPM.installExistingPackageAsUser(packageName, UserHandle.myUserId()); int res = mPM.installExistingPackageAsUser(packageName, userId); if (res == INSTALL_FAILED_INVALID_URI) { throw new NameNotFoundException("Package " + packageName + " doesn't exist"); } Loading Loading @@ -1706,8 +1726,14 @@ public class ApplicationPackageManager extends PackageManager { @Override public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) { deletePackageAsUser(packageName, observer, flags, UserHandle.myUserId()); } @Override public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { try { mPM.deletePackageAsUser(packageName, observer, UserHandle.myUserId(), flags); mPM.deletePackageAsUser(packageName, observer, userId, flags); } catch (RemoteException e) { // Should never happen! } Loading core/java/android/content/pm/PackageManager.java +99 −3 Original line number Diff line number Diff line Loading @@ -2010,7 +2010,7 @@ public abstract class PackageManager { * {@link #GET_RECEIVERS}, {@link #GET_SERVICES}, * {@link #GET_SIGNATURES}, {@link #GET_UNINSTALLED_PACKAGES} to * modify the data returned. * @return Returns a PackageInfo object containing information about the * @return A PackageInfo object containing information about the * package. If flag GET_UNINSTALLED_PACKAGES is set and if the * package is not found in the list of installed applications, the * package information is retrieved from the list of uninstalled Loading @@ -2031,6 +2031,46 @@ public abstract class PackageManager { public abstract PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException; /** * @hide * Retrieve overall information about an application package that is * installed on the system. * <p> * Throws {@link NameNotFoundException} if a package with the given name can * not be found on the system. * * @param packageName The full name (i.e. com.google.apps.contacts) of the * desired package. * @param flags Additional option flags. Use any combination of * {@link #GET_ACTIVITIES}, {@link #GET_GIDS}, * {@link #GET_CONFIGURATIONS}, {@link #GET_INSTRUMENTATION}, * {@link #GET_PERMISSIONS}, {@link #GET_PROVIDERS}, * {@link #GET_RECEIVERS}, {@link #GET_SERVICES}, * {@link #GET_SIGNATURES}, {@link #GET_UNINSTALLED_PACKAGES} to * modify the data returned. * @param userId The user id. * @return A PackageInfo object containing information about the * package. If flag GET_UNINSTALLED_PACKAGES is set and if the * package is not found in the list of installed applications, the * package information is retrieved from the list of uninstalled * applications (which includes installed applications as well as * applications with data directory i.e. applications which had been * deleted with {@code DONT_DELETE_DATA} flag set). * @see #GET_ACTIVITIES * @see #GET_GIDS * @see #GET_CONFIGURATIONS * @see #GET_INSTRUMENTATION * @see #GET_PERMISSIONS * @see #GET_PROVIDERS * @see #GET_RECEIVERS * @see #GET_SERVICES * @see #GET_SIGNATURES * @see #GET_UNINSTALLED_PACKAGES */ @RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS) public abstract PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException; /** * Map from the current package names in use on the device to whatever * the current canonical name of that package is. Loading Loading @@ -3689,6 +3729,31 @@ public abstract class PackageManager { Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName); /** * @hide * Install a package. Since this may take a little while, the result will be * posted back to the given observer. An installation will fail if the package named * in the package file's manifest is already installed, or if there's no space * available on the device. * @param packageURI The location of the package file to install. This can be a 'file:' or a * 'content:' URI. * @param observer An observer callback to get notified when the package installation is * complete. {@link PackageInstallObserver#packageInstalled(String, Bundle, int)} will be * called when that happens. This parameter must not be null. * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK}, * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}. * @param installerPackageName Optional package name of the application that is performing the * installation. This identifies which market the package came from. * @param userId The user id. */ @RequiresPermission(anyOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract void installPackageAsUser( Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId); /** * Similar to * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but Loading Loading @@ -3752,7 +3817,17 @@ public abstract class PackageManager { * @hide */ // @SystemApi public abstract int installExistingPackage(String packageName) public abstract int installExistingPackage(String packageName) throws NameNotFoundException; /** * If there is already an application with the given package name installed * on the system for other users, also install it for the specified user. * @hide */ @RequiresPermission(anyOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException; /** Loading Loading @@ -3958,7 +4033,7 @@ public abstract class PackageManager { * @param observer An observer callback to get notified when the package deletion is * complete. {@link android.content.pm.IPackageDeleteObserver#packageDeleted(boolean)} will be * called when that happens. observer may be null to indicate that no callback is desired. * @param flags - possible values: {@link #DELETE_KEEP_DATA}, * @param flags Possible values: {@link #DELETE_KEEP_DATA}, * {@link #DELETE_ALL_USERS}. * * @hide Loading @@ -3967,6 +4042,27 @@ public abstract class PackageManager { public abstract void deletePackage( String packageName, IPackageDeleteObserver observer, int flags); /** * Attempts to delete a package. Since this may take a little while, the result will * be posted back to the given observer. A deletion will fail if the named package cannot be * found, or if the named package is a "system package". * (TODO: include pointer to documentation on "system packages") * * @param packageName The name of the package to delete * @param observer An observer callback to get notified when the package deletion is * complete. {@link android.content.pm.IPackageDeleteObserver#packageDeleted(boolean)} will be * called when that happens. observer may be null to indicate that no callback is desired. * @param flags Possible values: {@link #DELETE_KEEP_DATA}, {@link #DELETE_ALL_USERS}. * @param userId The user Id * * @hide */ @RequiresPermission(anyOf = { Manifest.permission.DELETE_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract void deletePackageAsUser( String packageName, IPackageDeleteObserver observer, int flags, int userId); /** * Retrieve the package name of the application that installed a package. This identifies * which market the package came from. Loading test-runner/src/android/test/mock/MockPackageManager.java +34 −3 Original line number Diff line number Diff line Loading @@ -63,7 +63,13 @@ import java.util.List; public class MockPackageManager extends PackageManager { @Override public PackageInfo getPackageInfo(String packageName, int flags) public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException { throw new UnsupportedOperationException(); } /** @hide */ @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { throw new UnsupportedOperationException(); } Loading Loading @@ -524,6 +530,14 @@ public class MockPackageManager extends PackageManager { throw new UnsupportedOperationException(); } /** @hide */ @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId) { throw new UnsupportedOperationException(); } @Override public void setInstallerPackageName(String targetPackage, String installerPackageName) { Loading Loading @@ -629,6 +643,15 @@ public class MockPackageManager extends PackageManager { throw new UnsupportedOperationException(); } /** * @hide - to match hiding in superclass */ @Override public void deletePackageAsUser( String packageName, IPackageDeleteObserver observer, int flags, int userId) { throw new UnsupportedOperationException(); } @Override public void addPackageToPreferred(String packageName) { throw new UnsupportedOperationException(); Loading Loading @@ -792,7 +815,15 @@ public class MockPackageManager extends PackageManager { * @hide */ @Override public int installExistingPackage(String packageName) public int installExistingPackage(String packageName) throws NameNotFoundException { throw new UnsupportedOperationException(); } /** * @hide */ @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { throw new UnsupportedOperationException(); } Loading tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java +22 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,12 @@ public class BridgePackageManager extends PackageManager { return null; } @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { return null; } @Override public String[] currentToCanonicalPackageNames(String[] names) { return new String[0]; Loading Loading @@ -498,6 +504,11 @@ public class BridgePackageManager extends PackageManager { String installerPackageName) { } @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer,int flags, String installerPackageName, int userId) { } @Override public void installPackageWithVerification(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, Loading @@ -515,6 +526,12 @@ public class BridgePackageManager extends PackageManager { return 0; } @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { return 0; } @Override public void verifyPendingInstall(int id, int verificationCode) { } Loading Loading @@ -567,6 +584,11 @@ public class BridgePackageManager extends PackageManager { public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) { } @Override public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { } @Override public String getInstallerPackageName(String packageName) { return null; Loading Loading
core/java/android/app/ApplicationPackageManager.java +39 −13 Original line number Diff line number Diff line Loading @@ -126,8 +126,14 @@ public class ApplicationPackageManager extends PackageManager { @Override public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException { return getPackageInfoAsUser(packageName, flags, mContext.getUserId()); } @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { try { PackageInfo pi = mPM.getPackageInfo(packageName, flags, mContext.getUserId()); PackageInfo pi = mPM.getPackageInfo(packageName, flags, userId); if (pi != null) { return pi; } Loading Loading @@ -1338,7 +1344,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(null, null, null, VerificationParams.NO_UID, null); installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, null); installerPackageName, verificationParams, null, UserHandle.myUserId()); } @Override Loading @@ -1348,7 +1354,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, VerificationParams.NO_UID, manifestDigest); installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, encryptionParams); installerPackageName, verificationParams, encryptionParams, UserHandle.myUserId()); } @Override Loading @@ -1356,15 +1362,23 @@ public class ApplicationPackageManager extends PackageManager { IPackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, installerPackageName, verificationParams, encryptionParams); installerPackageName, verificationParams, encryptionParams, UserHandle.myUserId()); } @Override public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName) { installPackageAsUser(packageURI, observer, flags, installerPackageName, UserHandle.myUserId()); } @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId) { final VerificationParams verificationParams = new VerificationParams(null, null, null, VerificationParams.NO_UID, null); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, null); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, null, userId); } @Override Loading @@ -1375,7 +1389,7 @@ public class ApplicationPackageManager extends PackageManager { final VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, VerificationParams.NO_UID, manifestDigest); installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); encryptionParams, UserHandle.myUserId()); } @Override Loading @@ -1383,12 +1397,13 @@ public class ApplicationPackageManager extends PackageManager { PackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); encryptionParams, UserHandle.myUserId()); } private void installCommon(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { VerificationParams verificationParams, ContainerEncryptionParams encryptionParams, int userId) { if (!"file".equals(packageURI.getScheme())) { throw new UnsupportedOperationException("Only file:// URIs are supported"); } Loading @@ -1398,17 +1413,22 @@ public class ApplicationPackageManager extends PackageManager { final String originPath = packageURI.getPath(); try { mPM.installPackage(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null); mPM.installPackageAsUser(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null, userId); } catch (RemoteException ignored) { } } @Override public int installExistingPackage(String packageName) public int installExistingPackage(String packageName) throws NameNotFoundException { return installExistingPackageAsUser(packageName, UserHandle.myUserId()); } @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { try { int res = mPM.installExistingPackageAsUser(packageName, UserHandle.myUserId()); int res = mPM.installExistingPackageAsUser(packageName, userId); if (res == INSTALL_FAILED_INVALID_URI) { throw new NameNotFoundException("Package " + packageName + " doesn't exist"); } Loading Loading @@ -1706,8 +1726,14 @@ public class ApplicationPackageManager extends PackageManager { @Override public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) { deletePackageAsUser(packageName, observer, flags, UserHandle.myUserId()); } @Override public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { try { mPM.deletePackageAsUser(packageName, observer, UserHandle.myUserId(), flags); mPM.deletePackageAsUser(packageName, observer, userId, flags); } catch (RemoteException e) { // Should never happen! } Loading
core/java/android/content/pm/PackageManager.java +99 −3 Original line number Diff line number Diff line Loading @@ -2010,7 +2010,7 @@ public abstract class PackageManager { * {@link #GET_RECEIVERS}, {@link #GET_SERVICES}, * {@link #GET_SIGNATURES}, {@link #GET_UNINSTALLED_PACKAGES} to * modify the data returned. * @return Returns a PackageInfo object containing information about the * @return A PackageInfo object containing information about the * package. If flag GET_UNINSTALLED_PACKAGES is set and if the * package is not found in the list of installed applications, the * package information is retrieved from the list of uninstalled Loading @@ -2031,6 +2031,46 @@ public abstract class PackageManager { public abstract PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException; /** * @hide * Retrieve overall information about an application package that is * installed on the system. * <p> * Throws {@link NameNotFoundException} if a package with the given name can * not be found on the system. * * @param packageName The full name (i.e. com.google.apps.contacts) of the * desired package. * @param flags Additional option flags. Use any combination of * {@link #GET_ACTIVITIES}, {@link #GET_GIDS}, * {@link #GET_CONFIGURATIONS}, {@link #GET_INSTRUMENTATION}, * {@link #GET_PERMISSIONS}, {@link #GET_PROVIDERS}, * {@link #GET_RECEIVERS}, {@link #GET_SERVICES}, * {@link #GET_SIGNATURES}, {@link #GET_UNINSTALLED_PACKAGES} to * modify the data returned. * @param userId The user id. * @return A PackageInfo object containing information about the * package. If flag GET_UNINSTALLED_PACKAGES is set and if the * package is not found in the list of installed applications, the * package information is retrieved from the list of uninstalled * applications (which includes installed applications as well as * applications with data directory i.e. applications which had been * deleted with {@code DONT_DELETE_DATA} flag set). * @see #GET_ACTIVITIES * @see #GET_GIDS * @see #GET_CONFIGURATIONS * @see #GET_INSTRUMENTATION * @see #GET_PERMISSIONS * @see #GET_PROVIDERS * @see #GET_RECEIVERS * @see #GET_SERVICES * @see #GET_SIGNATURES * @see #GET_UNINSTALLED_PACKAGES */ @RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS) public abstract PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException; /** * Map from the current package names in use on the device to whatever * the current canonical name of that package is. Loading Loading @@ -3689,6 +3729,31 @@ public abstract class PackageManager { Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName); /** * @hide * Install a package. Since this may take a little while, the result will be * posted back to the given observer. An installation will fail if the package named * in the package file's manifest is already installed, or if there's no space * available on the device. * @param packageURI The location of the package file to install. This can be a 'file:' or a * 'content:' URI. * @param observer An observer callback to get notified when the package installation is * complete. {@link PackageInstallObserver#packageInstalled(String, Bundle, int)} will be * called when that happens. This parameter must not be null. * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK}, * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}. * @param installerPackageName Optional package name of the application that is performing the * installation. This identifies which market the package came from. * @param userId The user id. */ @RequiresPermission(anyOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract void installPackageAsUser( Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId); /** * Similar to * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but Loading Loading @@ -3752,7 +3817,17 @@ public abstract class PackageManager { * @hide */ // @SystemApi public abstract int installExistingPackage(String packageName) public abstract int installExistingPackage(String packageName) throws NameNotFoundException; /** * If there is already an application with the given package name installed * on the system for other users, also install it for the specified user. * @hide */ @RequiresPermission(anyOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException; /** Loading Loading @@ -3958,7 +4033,7 @@ public abstract class PackageManager { * @param observer An observer callback to get notified when the package deletion is * complete. {@link android.content.pm.IPackageDeleteObserver#packageDeleted(boolean)} will be * called when that happens. observer may be null to indicate that no callback is desired. * @param flags - possible values: {@link #DELETE_KEEP_DATA}, * @param flags Possible values: {@link #DELETE_KEEP_DATA}, * {@link #DELETE_ALL_USERS}. * * @hide Loading @@ -3967,6 +4042,27 @@ public abstract class PackageManager { public abstract void deletePackage( String packageName, IPackageDeleteObserver observer, int flags); /** * Attempts to delete a package. Since this may take a little while, the result will * be posted back to the given observer. A deletion will fail if the named package cannot be * found, or if the named package is a "system package". * (TODO: include pointer to documentation on "system packages") * * @param packageName The name of the package to delete * @param observer An observer callback to get notified when the package deletion is * complete. {@link android.content.pm.IPackageDeleteObserver#packageDeleted(boolean)} will be * called when that happens. observer may be null to indicate that no callback is desired. * @param flags Possible values: {@link #DELETE_KEEP_DATA}, {@link #DELETE_ALL_USERS}. * @param userId The user Id * * @hide */ @RequiresPermission(anyOf = { Manifest.permission.DELETE_PACKAGES, Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract void deletePackageAsUser( String packageName, IPackageDeleteObserver observer, int flags, int userId); /** * Retrieve the package name of the application that installed a package. This identifies * which market the package came from. Loading
test-runner/src/android/test/mock/MockPackageManager.java +34 −3 Original line number Diff line number Diff line Loading @@ -63,7 +63,13 @@ import java.util.List; public class MockPackageManager extends PackageManager { @Override public PackageInfo getPackageInfo(String packageName, int flags) public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException { throw new UnsupportedOperationException(); } /** @hide */ @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { throw new UnsupportedOperationException(); } Loading Loading @@ -524,6 +530,14 @@ public class MockPackageManager extends PackageManager { throw new UnsupportedOperationException(); } /** @hide */ @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, int userId) { throw new UnsupportedOperationException(); } @Override public void setInstallerPackageName(String targetPackage, String installerPackageName) { Loading Loading @@ -629,6 +643,15 @@ public class MockPackageManager extends PackageManager { throw new UnsupportedOperationException(); } /** * @hide - to match hiding in superclass */ @Override public void deletePackageAsUser( String packageName, IPackageDeleteObserver observer, int flags, int userId) { throw new UnsupportedOperationException(); } @Override public void addPackageToPreferred(String packageName) { throw new UnsupportedOperationException(); Loading Loading @@ -792,7 +815,15 @@ public class MockPackageManager extends PackageManager { * @hide */ @Override public int installExistingPackage(String packageName) public int installExistingPackage(String packageName) throws NameNotFoundException { throw new UnsupportedOperationException(); } /** * @hide */ @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { throw new UnsupportedOperationException(); } Loading
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java +22 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,12 @@ public class BridgePackageManager extends PackageManager { return null; } @Override public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException { return null; } @Override public String[] currentToCanonicalPackageNames(String[] names) { return new String[0]; Loading Loading @@ -498,6 +504,11 @@ public class BridgePackageManager extends PackageManager { String installerPackageName) { } @Override public void installPackageAsUser(Uri packageURI, PackageInstallObserver observer,int flags, String installerPackageName, int userId) { } @Override public void installPackageWithVerification(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, Loading @@ -515,6 +526,12 @@ public class BridgePackageManager extends PackageManager { return 0; } @Override public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { return 0; } @Override public void verifyPendingInstall(int id, int verificationCode) { } Loading Loading @@ -567,6 +584,11 @@ public class BridgePackageManager extends PackageManager { public void deletePackage(String packageName, IPackageDeleteObserver observer, int flags) { } @Override public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { } @Override public String getInstallerPackageName(String packageName) { return null; Loading