# PermissionRequester

Summary:[Ctors](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#pubctors)\|[Methods](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#pubmethods)\|[Protected Methods](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#promethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#)  

# PermissionRequester

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public


class
PermissionRequester
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object.html)`


``


`

|---|------------------------------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||
| ↳ | android.support.test.runner.permission.PermissionRequester |

<br />

*** ** * ** ***

Requests a runtime permission on devices running Android M (API 23) and above.

This class is usually used to grant runtime permissions to avoid the permission dialog from showing up and blocking the App's Ui. This is especially helpful for Ui-Testing to avoid loosing control over your application under test.

The requested permissions will be granted for all test methods in the test class. Use[addPermissions(String)](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#addPermissions(java.lang.String...))to add a permission to the permission list. To request all permissions use the[requestPermissions()](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#requestPermissions())method.

Note: Usually this class would not be used directly, but through[GrantPermissionRule](https://developer.android.com/reference/android/support/test/rule/GrantPermissionRule).

**This API is currently in beta.**

## Summary

|                                                                  ### Public constructors                                                                   ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[PermissionRequester](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#PermissionRequester())`() ` |

|                                                                                                                                                                                                                                                               ### Public methods                                                                                                                                                                                                                                                               ||
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void` | ` `[addPermissions](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#addPermissions(java.lang.String...))`(`[String...](https://developer.android.com/reference/java/lang/String.html)` permissions) ` Adds a permission to the list of permissions which will be requested when[requestPermissions()](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#requestPermissions())is called.                                           |
| ` void` | ` `[requestPermissions](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#requestPermissions())`() ` Request all permissions previously added using[addPermissions(String)](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#addPermissions(java.lang.String...)) Precondition: This method does nothing when called on an API level lower than[M](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#M). |

|                                                                                  ### Protected methods                                                                                  ||
|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void` | ` `[setAndroidRuntimeVersion](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#setAndroidRuntimeVersion(int))`(int sdkInt) ` |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#)From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object.html)` ` |-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object.html)          | ` clone() `                                                                                | | ` boolean`                                                                          | ` equals(`[Object](https://developer.android.com/reference/java/lang/Object.html)` arg0) ` | | ` void`                                                                             | ` finalize() `                                                                             | | ` final `[Class](https://developer.android.com/reference/java/lang/Class.html)`<?>` | ` getClass() `                                                                             | | ` int`                                                                              | ` hashCode() `                                                                             | | ` final void`                                                                       | ` notify() `                                                                               | | ` final void`                                                                       | ` notifyAll() `                                                                            | | ` `[String](https://developer.android.com/reference/java/lang/String.html)          | ` toString() `                                                                             | | ` final void`                                                                       | ` wait(long arg0, int arg1) `                                                              | | ` final void`                                                                       | ` wait(long arg0) `                                                                        | | ` final void`                                                                       | ` wait() `                                                                                 | ||

## Public constructors

### PermissionRequester

```
PermissionRequester ()
```

<br />

<br />

## Public methods

### addPermissions

```
void addPermissions (String... permissions)
```

Adds a permission to the list of permissions which will be requested when[requestPermissions()](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#requestPermissions())is called.

Precondition: This method does nothing when called on an API level lower than[M](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#M).

<br />

|                               Parameters                               ||
|---------------|---------------------------------------------------------|
| `permissions` | `String`: a list of Android runtime permissions. <br /> |

### requestPermissions

```
void requestPermissions ()
```

Request all permissions previously added using[addPermissions(String)](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester#addPermissions(java.lang.String...))

Precondition: This method does nothing when called on an API level lower than[M](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#M).

<br />

## Protected methods

### setAndroidRuntimeVersion

```
void setAndroidRuntimeVersion (int sdkInt)
```

<br />

<br />

|       Parameters       ||
|----------|--------------|
| `sdkInt` | `int` <br /> |

-

  ## Classes

  - [PermissionRequester](https://developer.android.com/reference/android/support/test/runner/permission/PermissionRequester)
  - [RequestPermissionCallable](https://developer.android.com/reference/android/support/test/runner/permission/RequestPermissionCallable)
  - [ShellCommand](https://developer.android.com/reference/android/support/test/runner/permission/ShellCommand)
-

  ## Enums

  - [RequestPermissionCallable.Result](https://developer.android.com/reference/android/support/test/runner/permission/RequestPermissionCallable.Result)