getAllPermissions function

Future<bool> getAllPermissions(
  1. List<Permission> permissions,
  2. String? text, {
  3. bool showAlert = true,
  4. Function? alert,
  5. GestureTapCallback? cancelTap,
})

必须获取通过全部权限 You must obtain all permissions

Implementation

Future<bool> getAllPermissions(List<Permission> permissions, String? text,
    {bool showAlert = true,
    Function? alert,
    GestureTapCallback? cancelTap}) async {
  if (!isMobile) return false;
  final Map<Permission, PermissionStatus> status = await permissions.request();
  permissions = <Permission>[];
  status.forEach((Permission key, PermissionStatus value) {
    if (!value.isGranted) permissions.add(key);
  });
  if (permissions.isNotEmpty) {
    if (showAlert) {
      if (alert != null) {
        alert.call();
      } else {
        showAlertConfirmCancel(
            text: '该服务需要开启$text授权',
            confirmTap: () async {
              final bool state = await openAppSettings();
              if (!state) showAlertMessage(text: '无法打开设置,请手动前往设置开启权限');
            },
            cancelTap: cancelTap);
      }
    }
    return false;
  }
  return true;
}