前言
阅读前说明:
- 所有系统均为Android原生系统,其他国产ROM最后再讨论。
- 所有的申请都为主动触发,即主动点击申请按钮。
- 申请时,默认是没有权限的。
- 流程图中长方形中为方法名。
流程图
申请单个权限流程图
申请权限组流程图
申请混合权限(单个权限+权限组)流程图
具体流程=单个权限流程图+权限组流程图
代码中有例子,就不详细说明了。
EasyPermissions使用
- 依赖
dependencies {
implementation 'pub.devrel:easypermissions:1.2.0'
}
- 检查权限并申请权限
public static final int PERMISSION_STORAGE_CODE = 10001;
public static final String PERMISSION_STORAGE_MSG = "此app需要获取SD卡读取权限";
public static final String[] PERMISSION_STORAGE = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE};
public static boolean hasPermissions(Context context, String... permissions) {
return EasyPermissions.hasPermissions(context, permissions);
}
/**
* 是否有SD卡权限
*
* @param context
* @return
*/
public static boolean hasStoragePermi