一、创建权限类PZHelp_Permissions:
public class PZHelp_Permissions {
public PZHelp_Permissions(Activity activity, String[] permissions) {
List<String> premissionList = new ArrayList<>();
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
premissionList.add(permission);
}
}
if (!premissionList.isEmpty()) {
ActivityCompat.requestPermissions(activity, premissionList.toArray(new String[0]), 100);
}
}
}
二、主函数调用(最好是程序开始第一时间调用)
new PZHelp_Permissions(this,new String[]{
Manifest.permission.MOUNT_FORMAT_FILESYSTEMS,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
});
三、解释
检查是否拥有某个权限:
ContextCompat.checkSelfPermission(Context context,String Manifest.permission.WRITE_CALENDAR);
如果拥有该权限,该方法将返回PackageManager.PERMISSION_GRANTED
。
如果应用未拥有该权限,该方法将返回PERMISSION_DENIED
需要申请某个权限时调用:
ActivityCompat.requestPermissions(Activity activity, String[] permissions, int requestCode)
下面这些权限是需要动态申请的,每个类别只需要申请一个,其他便会自动获权。
在标准的处理中,我们还需要编写用户点击完权限允许之后的回调,但这里就省略了,需要者自行添加。