动态申请权限
在动态申请权限这里,一共分为两种不同的模式,分别是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