Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59928987 authored by Nick Kralevich's avatar Nick Kralevich Committed by Android (Google) Code Review
Browse files

Merge "Add buildPermissionRequestIntent to PackageManager" into jb-mr2-dev

parents bf20aa76 035f80d7
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -1263,6 +1263,23 @@ public abstract class PackageManager {
    public static final String EXTRA_VERIFICATION_VERSION_CODE
            = "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.
@@ -1734,6 +1751,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,