欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Flutter动态权限申请教程

程序员文章站 2022-05-10 11:03:37
...

1.添加外部资源包

permission_handler: 3.2.2

2.使用

Future requestPermission() async {
    // 申请权限
    Map<PermissionGroup, PermissionStatus> permissions =
    await PermissionHandler().requestPermissions([PermissionGroup.location,PermissionGroup.storage]);
    // 申请结果
    PermissionStatus permission =
    await PermissionHandler().checkPermissionStatus(PermissionGroup.location);

    if (permission == PermissionStatus.granted) {
      //权限申请成功
      preLogin();
    } else {
      //权限申请被拒绝
      CargoUtils.showMessage("亲!必须开启位置权限才能进入主程序~");
      // 申请权限
      //    只有当用户同时点选了拒绝开启权限和不再提醒后才会true
      bool isSHow = await PermissionHandler()
          .shouldShowRequestPermissionRationale(PermissionGroup.location);
      if(!isSHow){
        CargoUtils.showMessage("当前已被您禁用申请权限,请在设置中手动开启后退出重新进入程序");
        await PermissionHandler().openAppSettings();
      }else{
        PermissionStatus ps =
        await PermissionHandler().checkPermissionStatus(PermissionGroup.location);
        if(ps == PermissionStatus.granted){
          preLogin();
        }else{
          requestPermission();
        }
      }

    }

  }
相关标签: 权限