EasyPermissions is a wrapper library to simplify basic system permissions logic when targeting Android M or higher.
Easy Permissions
Installation
EasyPermissions is installed by adding the following dependency to your build.gradle
file:
1 | dependencies { |
Usage
Basic
To begin using EasyPermissions, have your Activity
(or Fragment
) override the onRequestPermissionsResult
method:
1 | public class MainActivity extends AppCompatActivity { |
Request Permissions
The example below shows how to request permissions for a method that requires bothCAMERA
and CHANGE_WIFI_STATE
permissions. There are a few things to note:
- Using
EasyPermissions#hasPermissions(...)
to check if the app already has the
required permissions. This method can take any number of permissions as its final
argument. - Requesting permissions with
EasyPermissions#requestPermissions
. This method
will request the system permissions and show the rationale string provided if
necessary. The request code provided should be unique to this request, and the method
can take any number of permissions as its final argument. - Use of the
AfterPermissionGranted
annotation. This is optional, but provided for
convenience. If all of the permissions in a given request are granted, any methods
annotated with the proper request code will be executed. This is to simplify the common
flow of needing to run the requesting method after all of its permissions have been granted.
This can also be achieved by adding logic on theonPermissionsGranted
callback.
1 | (RC_CAMERA_AND_WIFI) |
Optionally, for a finer control, you can have your Activity
/ Fragment
implement
the PermissionCallbacks
interface.
1 | public class MainActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks { |
Required Permissions
In some cases your app will not function properly without certain permissions. If the user
denies these permissions with the “Never Ask Again” option, you will be unable to request
these permissions from the user and they must be changed in app settings. You can use the
method EasyPermissions.somePermissionPermanentlyDenied(...)
to display a dialog to the
user in this situation and direct them to the system setting screen for your app:
1 |
|