/EasyPermissions

Request permissions from anywhere as long as you have context.

Easy Permissions

Easy Permissions allows you to request all the permissions declared in your AndroidManifest with one line of code. It knows what permissions you have declared in your AndroidManifest and will request them for you if needed. In addition, it allows you to make this request from anywhere in your code; no longer will you have to request permissions exclusively from an Activity.

Easy Permissions


Sample - It knows what permissions you have in your AndroidManifest and will request them if needed.

EasyPermissions.getInstance().requestPermissions(IPermissionsListener(
        onCompleted = { grantedPermissions, deniedPermissions ->

        }
))

Table of Contents

  1. Information
  2. Setup
  3. Example 1
  4. Example 2
  5. Example 3
  6. Demo App
  7. Support Us
  8. License
  9. Contact

Information

Request permissions from anywhere. Make sure you implement IPermissionsListener to receive information about what is happening with your permission request.

Setup

Include the below dependencies in your build.gradle project.

buildscript {
    repositories {
        google()
        maven { url "https://newtronlabs.jfrog.io/artifactory/libs-release-local" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        classpath 'com.newtronlabs.android:plugin:5.0.2'
    }
}

allprojects {
    repositories {
        google()
        maven { url "https://newtronlabs.jfrog.io/artifactory/libs-release-local" }
    }
}

subprojects {
    apply plugin: 'com.newtronlabs.android'
}

In the build.gradle for your app.

dependencies {
    compileOnly 'com.newtronlabs.easypermissions:easypermissions:5.0.3-alpha01'
}

Example 1

This example uses a Service to request the permission, something that cannot be done without EasyPermissions. It also automatically requests the permissions that you have enabled on your AndroidManifest.

Kotlin

class ExampleService : Service(), IPermissionsListener {
    override fun onCreate() {
        super.onCreate()

        // Will request all permissions from the Manifest automatically.
        EasyPermissions.getInstance().requestPermissions(this)
    }

    override fun onCompleted(grantedPermissions: Set<String>, deniedPermissions: Set<String>) {}

    override fun onFailure(throwable: Throwable) {}
}

Java

public class ExampleService extends Service implements IPermissionsListener {
    @Override
    public void onCreate() {
        super.onCreate();
        
        // Will request all permissions from the Manifest automatically.
        EasyPermissions.getInstance().requestPermissions(this);
    }

    @Override
    public void onCompleted(Set<String> grantedPermissions, Set<String> deniedPermissions) {}

    @Override
    public void onFailure(Throwable throwable) {}
}

Example 2

This example allows more flexibility so that you can decide which permissions you desire. Request as many permissions as you like. You may seperate them by commas or pass an array. Make sure that these permissions are declared in your AndroidManifest as well.

EasyPermissions.getInstance().requestPermissions(this,
       Manifest.permission.ACCESS_FINE_LOCATION,
       Manifest.permission.CAMERA,
       Manifest.permission.CALL_PHONE,
       Manifest.permission.WRITE_EXTERNAL_STORAGE);

Example 3

Get a set of granted permissions.

EasyPermissions.getInstance().getGrantedPermissions()

Always add the permission to your AndroidManifest.xml

As an Android requirement permissions must be included in the Manifest.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Demo App

More detailed exmaples can be found in this repo's samples folders: Demo app


Support Us

Please support the continued development of these libraries. We host and develop these libraries for free. Any support is deeply appriciated. Thank you!

Support us

BTC Address: 39JmAfnNhaEPKz5wjQjQQj4jcv9BM11NQb


License

https://gist.github.com/NewtronLabs/216f45db2339e0bc638e7c14a6af9cc8

Contact

solutions@newtronlabs.com

Website

http://www.newtronlabs.com/