首页 > 其他分享 >如何管理各种权限

如何管理各种权限

时间:2024-09-05 22:52:05浏览次数:6  
标签:原生 配置文件 permission Permission 如何 权限 管理

文章目录

我们在上一章回中介绍了局部动态列表相关的内容,本章回中将介绍权限管理包permission_hanadler.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

概念介绍

权限是使用某种功能的授权,比如使用手机上的相机就是获取相机相关的权限。在移动开发中,不论是Android还是IOS都需要进行权限管理,Flutter是跨平台的开发
框架,因此也需要权限管理,我们推荐使用permission_handler这个三方包来管理权限。该包提供了许多方法,方法我们申请权限,当然了还需要使用原生的配置才
能完成权限管理。本章回中将详细介绍如何使用该包来实现权限管理。

使用方法

  1. 在yaml文件中导入permission_handler包并且获取到本地项目中;
  2. 使用Android和IOS原生开发中的方法在权限配置文件配置需要管理的权限;
  3. 通过包中Permission类的status属性获取权限当前的状态,然后依据不同的状态做相应的操作;
  4. 如果没有获取到需要的权限。那么使用包中的request()方法去申请权限;
  5. request()方法返回Future对象,可以在申请完权限后查看权限的状态,或者打开某些开关,比如位置开关;

示例代码

  void checkPermission() async {
    var status = await Permission.bluetooth.status;
    if(status.isDenied) {
      requestPermission();
    }
  }
  void requestPermission() async {
    Map<Permission,PermissionStatus> permissionMap = await [
      Permission.locationAlways,
      Permission.bluetoothScan,
      Permission.bluetoothConnect,
    ].request();

    debugPrint("permission state: ${permissionMap[Permission.location]}");
  }

在上面的代码中把查看权限状态和申请权限都封装成了独立的方法,这样方便项目使用。代码是以蓝牙和位置权限为例子的,大家可以试试其它的权限。此外,这里没有列
出原生配置文件中配置权限:Android在manifest.xlm文件配置,IOS在info.plist文件中配置。

经验分享

权限管理是一个非常烦人的操作,而且不同的系统版本对权限管理有不同的要求,IOS相对好一些,android的版本碎片化严重,需要适配不同的系统版本。Flutter没
有专门的权限配置文件,因此权限管理还是使用原生开发方式中的配置文件,开发者需要在原生配置文件中做权限配置,然后再使用文章中介绍的三方包申请权限和查看权
限状态。我的经验是如果想掌握好权限管理相关的知识,必须要掌握原生开发中的权限管理,然后再配合permission_handler包来申请权限。注意一下:Android的
配置文件分布在三个目录中:debug,release,profile。它们分别对应不同的软件版本,最好让这三个目录下的配置文件保持一致。
最后再来一个总结:权限管理的配置仍然在原生配置文件中,三方包只是帮助我们写了申请和查看权限状态的代码。
看官们,与"权限管理包permission_handler"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:原生,配置文件,permission,Permission,如何,权限,管理
From: https://blog.csdn.net/talk_8/article/details/141927251

相关文章

  • apache服务器如何配置多虚拟站点
    演示环境用的是macos下的MAMPPRO5.21、首先启动MAMPPRO,界面如下:2、创建虚拟站点:首先选择“Hosts”,再点击图上的“+”号按钮,如下图出现如下界面:演示创建的站点名为“testa”,选择的目录如下图:再点击“CreateHost”创建虚拟站点,如下图:若要更改PHP的版本,可以选......
  • springboot+vue+mybatis计算机毕业设计房屋租赁管理系统+PPT+论文+讲解+售后
    随着社会的不断进步与发展,人们经济水平也不断的提高,于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来,利用计算机网络来处理各行业事务这一概念更深入人心,由于工作繁忙以及疫情的原因,房屋租赁也是比较难实施的。如果开发一款房屋租赁管理系统,可以让用户在最......
  • Java毕业设计基于SpringBoot的毕业设计管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在学生模块,主要有学生进行注册和登录,学生可以查看开题报告、中期检查、论文提交、论文指导、毕业答辩等,还能......
  • paper 管理
    这些文章放到这里我估计我也就不会读了。移动端agenthttps://arxiv.org/pdf/2406.11896DigiRL:TrainingIn-The-WildDevice-ControlAgentswithAutonomousReinforcementLearningagent相关的环境https://arxiv.org/pdf/2308.04026Anopen-sourcesandboxforlargel......
  • 基于Java的考试报名管理系统的设计与实现(源码+LW+调试文档)
     目录:程序功能截图:程序部分代码参考:数据库sql:程序技术介绍:后端springboot介绍:mysql介绍:程序论文:​选择我的理由:程序获取:......
  • Java毕业设计基于SpringBoot的城市公交运营管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在公交员模块,主要有公交员进行注册和登录,公交员可以查看公交调度、紧急上报、紧急调度、车辆状况等,还能修改......
  • Java毕业设计基于SpringBoot的图书管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言该系统利用Java语言、MySQL数据库,结合目前流行的B/S架构,将图书管理的各个方面都集中到数据库中,以便于用户的需要。该系统在确保系统稳定的前提下,能够实现多功能模块的设计和应......
  • 基于Java的美容院管理系统的设计与实现(源码+LW+调试文档)
     目录:程序功能截图:程序部分代码参考:数据库sql:程序技术介绍:后端springboot介绍:mysql介绍:程序论文:​选择我的理由:程序获取:......
  • 基于Springboot宠物店管理系统的设计与实现(源码+LW+调试文档)计和实现
     目录:程序功能截图:程序部分代码参考:数据库sql:程序技术介绍:后端springboot介绍:mysql介绍:程序论文:​选择我的理由:程序获取:......
  • Java毕业设计基于SpringBoot的大棚蔬菜管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破......