diff options
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 0bea13818057..e183bf3c4291 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -1264,6 +1264,23 @@ public abstract class PackageManager { = "android.content.pm.extra.VERIFICATION_VERSION_CODE"; /** + * The action used to request that the user approve a permission request + * from the application. + * + * @hide + */ + public static final String ACTION_REQUEST_PERMISSION + = "android.content.pm.action.REQUEST_PERMISSION"; + + /** + * Extra field name for the list of permissions, which the user must approve. + * + * @hide + */ + public static final String EXTRA_REQUEST_PERMISSION_PERMISSION_LIST + = "android.content.pm.extra.PERMISSION_LIST"; + + /** * Retrieve overall information about an application package that is * installed on the system. * <p> @@ -1735,6 +1752,30 @@ public abstract class PackageManager { public abstract void removePermission(String name); /** + * Returns an {@link Intent} suitable for passing to {@code startActivityForResult} + * which prompts the user to grant {@code permissions} to this application. + * @hide + * + * @throws NullPointerException if {@code permissions} is {@code null}. + * @throws IllegalArgumentException if {@code permissions} contains {@code null}. + */ + public Intent buildPermissionRequestIntent(String... permissions) { + if (permissions == null) { + throw new NullPointerException("permissions cannot be null"); + } + for (String permission : permissions) { + if (permission == null) { + throw new IllegalArgumentException("permissions cannot contain null"); + } + } + + Intent i = new Intent(ACTION_REQUEST_PERMISSION); + i.putExtra(EXTRA_REQUEST_PERMISSION_PERMISSION_LIST, permissions); + i.setPackage("com.android.packageinstaller"); + return i; + } + + /** * Grant a permission to an application which the application does not * already have. The permission must have been requested by the application, * but as an optional permission. If the application is not allowed to |