首页 > 其他分享 >Android笔记--动态申请权限

Android笔记--动态申请权限

时间:2023-02-18 10:11:22浏览次数:33  
标签:-- APP 模式 获取 授权 Android 权限 弹窗

动态申请权限

在动态申请权限这里,一共分为两种不同的模式,分别是Lazy模式(懒汉式)和Hungry模式(饿汉式),这两种模式区分的话,可以通俗地解释一下就是,对于懒汉来说,只有在我们点击某个按钮需要获取到什么什么东西需要什么权限时,他才会弹出提示框;而对于饿汉来说,只要我们打开这个APP,就会自动弹出获取相关权限的弹窗,不管我们是否使用它的相关功能;

动态申请权限Lazy模式

动态申请权限的三个具体的步骤:

懒汉模式其实就是点击按钮之后,会触发相关的事件,弹出相关弹窗;

界面比较简单,点击之后,就会跳转到相应的后台界面,然后需要获取到相关的按钮进行操作;

较为清楚一些的话,可以定义一个工具类,用来存放能够用到的相关函数代码;

在按钮后台的Activity.java界面,我们首先需要定义出来这些东西:

上面的两个函数,分别表示:通讯录的读写权限,以及短信的收发权限;下面的两行代码,就是区分开两个不同权限是否被用户同意授权的标志

而这个函数的作用,就是为了获取到用户点击Allow还是Refuse的授权结果:

也就是第一张图片所指出的步骤三;

动态申请权限Hungry模式

也就是在刚刚打开该APP时,就会直接弹窗,要求获取用户的授权结果;

也可以这么说,相比于Lazy模式获取权限分函数进行获取,Hungry模式直接表示:“我可以一次性获取到四个权限”:

都是申请权限,两者本质上是没有什么区别的,主要的区别在于一个是权限分开管理获取,另一个是权限一起获取;

除了上面图片中的区别,还有下面这些:

又另外实现了一个功能,在刚进入APP界面时,就被要求获取权限,不小心点到了拒绝,还是希望在点击相应的按钮时,还能够弹出来授权的弹窗:

这里是将原来的PERMISSIONS_CONTACTS或者PERMISSIONS_SMS改成了图片中的这样;

需要注意的是,这个APP里面,若是连续点了两次拒绝授权,之后要是再想继续授权,他是不会弹出弹窗的,会帮助我们跳转到用户对该APP的授权设置界面!!!

标签:--,APP,模式,获取,授权,Android,权限,弹窗
From: https://www.cnblogs.com/liuzijin/p/17092182.html

相关文章

  • 思科默认的管理距离
    2023-02-18路由选择协议   默认管理距离直连路由   0指向接口的静态路由   0指向下一条的静态路由   1EIGRP汇总路由   5外部BGP   20内部EIGRP......
  • 谷歌非安全端口
    报错:无法访问此网站网址为 http://**********:6666 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。ERR_UNSAFE_PORT chorme浏览器有自己的默认非安全端口,......
  • python学习笔记七:DataFrame
    1.Series是ndarray的升级,而DataFrame是Series的升级,从一维拓展到多维DataFrame的属性:index,colums,values,shapeimportnumpyasnpimportpandasaspdfrompandasimport......
  • python学习笔记六:Series
    Series是一种类似于一维数组的对象,由以下两部分组成:values:一组数据(ndarray或list类型)index:相关的数据索引标签一维数组默认索引为0,1,2,3...,而Series的索引可以自己给定......
  • python学习笔记五:numpy
    ndarray是一个多维数组的数据结构1.彩色图像是一个三维数组,通过matplotlib显示图像#显示图像importnumpyasnpimportmatplotlib.pyplotaspltfish=plt.imread('HappyF......
  • opencv学习笔记七十一:图像修复
    当我们的照片有划痕或遭到人为的涂鸦(比如马赛克)时,如果我们想让这些遭到破坏的图片尽可能恢复到原样,Opencv能帮我们做到吗?答案是肯定的。那么图像修复技术的原理是什么呢?简......
  • opencv四:鼠标事件
     查看所有鼠标事件:importcv2events=[iforiindir(cv2)if'EVENT'ini]print(events)运行结果:['EVENT_FLAG_ALTKEY','EVENT_FLAG_CTRLKEY','EVENT_FLAG_LBUTTON'......
  • opencv二:视频读取与保存
    1.打开摄像头#打开摄像头importcv2cap=cv2.VideoCapture(0)while(True):ret,frame=cap.read()#返回两个值,第一个为bool类型,如果读到帧返回True,如果没读到帧返回Fa......
  • opencv一:图像读取与保存
    如果不想每次在命令前加上cv2的话,可以将importcv2改为fromcv2import*图像读取函数:cv2.imread(图像路径,标志符)图像路劲可以是绝对路径和相对路径标识符有三种:cv2.IMREAD......
  • python学习笔记四:字典
    字典和集合一样是无序的,不能通过索引来存取,只能通过键来存取。字典的键必须是不可变的数据类型,如数字,字符串,元组等,列表等可变对象不能作为键。不允许同一个键出现两次,创建......