getPermission function

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

单独获取一个权限 Get a separate permission

Implementation

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