动态权限申请
项目根目录
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
模块目录
dependencies {
implementation 'com.github.lavalike:permission:0.0.2'
}
为简便接口,可使用抽象接口实现类 AbsPermissionCallback
public interface PermissionCallback {
/**
* all permissions are granted
*
* @param permissions permissions
*/
void onGrant(String[] permissions);
/**
* permissions are denied or refused
*
* @param deniedPermissions denied permissions
* @param neverAskPermissions refused permissions
*/
void onDeny(String[] deniedPermissions, String[] neverAskPermissions);
/**
* permissions not declared in manifest
*
* @param permissions permissions
*/
void onNotDeclared(String[] permissions);
}
public final class PermissionManager {
public static void request(Fragment fragment, PermissionCallback callback, String... permissions);
public static void request(Context context, PermissionCallback callback, String... permissions);
public static void request(FragmentActivity activity, PermissionCallback callback, String... permissions);
public static Intent getSettingIntent(Context context);
}
PermissionManager.request(this, new PermissionCallback() {
@Override
public void onGrant(String[] permissions) {
}
@Override
public void onDeny(String[] deniedPermissions, String[] neverAskPermissions) {
}
@Override
public void onNotDeclared(String[] permissions) {
}
}, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);