requestPermissions static method

Future<PermissionStatus> requestPermissions(
  1. List<Permission> permissions, {
  2. SuccessCallBack? success,
  3. DeniedCallBack? denied,
  4. OtherCallBack? other,
})

请求获取多个权限 Permission 请求的权限 success 授权成功回调 denied 授权失败回调; isPermanentlyDenied 是否永久拒绝 other 其他回调

Implementation

static Future<PermissionStatus> requestPermissions(
  List<Permission> permissions, {
  SuccessCallBack? success,
  DeniedCallBack? denied,
  OtherCallBack? other,
}) async {
  // 请求权限
  Map<Permission, PermissionStatus> map = await permissions.request();
  // 遍历权限
  for (Permission key in map.keys) {
    var status = map[key];
    if (status == PermissionStatus.granted) {
      // 只有全部权限都被授权,才返回成功
    } else if (status == PermissionStatus.denied || status == PermissionStatus.restricted) {
      // 若有一个权限被拒绝,则返回失败
      denied?.call(status!.isPermanentlyDenied);
      return status!;
    } else {
      // 若有其他情况,则返回其他
      other?.call(status!);
      return status!;
    }
  }
  success?.call();
  return PermissionStatus.granted;
}