美文网首页
2020-10-31

2020-10-31

作者: 天堂守望者 | 来源:发表于2020-10-31 08:27 被阅读0次

Android 6.0后官方对权限做了更改,一些涉及到用户隐私的权限必须要用户手动允许;而对于某些app来说,某个权限一旦被用户拒绝,则面临的是整个app的瘫痪,所以,我们要在合适的位置对出现的异常情况进行特殊操作:
首先调用权限的方法:

ActivityCompat.requestPermissions(final @NonNull Activity activity,final @NonNull String[] permissions, final @IntRange(from = 0) int requestCode)
1
此方法的三个参数:①为调用权限的当前activity
②权限数组,所有的权限都可以整合到这里
③请求码,用来判断是此次请求操作,后面可以用到

此方法已经判断了sdk>=23的情况,所以我们无需再次判断。
另外有时候我们在需要某个权限的时候,不知道是否已经申请过,这时候我们就需要检查一下,这里检查权限的代码为:

ActivityCompat.checkSelfPermission(@NonNull Context context, @NonNull String permission)
1
其中①context为当前上下文对象
②permission为需要检查的权限为字符串类型
此方法返回值为int 型,如果==0,则代表已经拥有过权限;如果==-1,则代表还未申请此权限,此方法在任何时间都可以判断。

再一个就是权限申请都是以弹窗的形式让用户选择允许还是拒绝;不管用户是选择哪一项,在点击完成(如果同时申请多个权限,则需要所有权限全部点击完)后,必会触发下面这个回调方法:

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults)
1
2
这个方法是FragmentActivity实现ActivityCompat.OnRequestPermissionsResultCallback后的回调方法,用户在activity中只要重写这个方法就可以了;
这个方法中有三个参数:①代表上面申请权限时提供的请求码
②是此次申请的所有权限的数组,数组中元素顺序按照申请时的顺序排列;
③返回的允许还是拒绝的结果码,以int数组的方式一一对应于②参数的权限,其中每个元素只有两种值:0和-1,0即是代表已经允许,-1则代表用户主动拒绝;
通过这个方法我们就可以根据用户的回应选择不同的处理方式,比如如果某个权限用户必须允许,我们则可以在用户拒绝后强制弹出一个不可取消的dialog,引导用户进入权限设置页面进行设置,用户进入权限页面的代码如下:

Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);

好了,具体权限申请这块的基本需求就只有这么多了 网上摘录的

相关文章

  • 周六 2020-10-31 23:00 - 06:30 晴 09

    2020-10-31 休息的一天周六 2020-10-31 23:00 - 06:30 晴 09h58m 一 时间...

  • 笔未提,长书满痕。花已落,一地秋凉。 2020-10-31南雁先生

  • 2020-10-31

    【318号】2020-10-31点赞列表 http://www.jianshu.com/p/203f3ab8427...

  • 日记/武功山之行

    2020-10-31 内心真实的体验才会「心动」 ,这种体验才是深刻的,才会真正带给我突破自己的勇气! —...

  • 再去Pioneer Museum阿拉巴马的先锋博物馆

    2020-10-31今天再去Pioneer Museum,是Dr. S邀请大家去参加一个专题展示活动。这场活动邀请...

  • 2020-10-31月检视

    2020-10-31月检视 一、健康 1、早起目标:5:00 早睡目标:22:30 10月总体完成情况:平均早起打...

  • 2020.10冥想的体验

    2020-10-31 冥想记录9: 15:30哄闺女入睡未果,索性开始冥想,屏蔽了因为午饭导致的困倦,加上昨天睡眠...

  • 2020年韩国机器人世界展览会Robot World

    2020年韩国机器人世界展览会 展会时间: 2020-10-28到2020-10-31 展会地点: 韩国 首尔 展...

  • 十月

    2020-10-31 物欲,危机感,往上走。 2020-10-30 勇气就是体现你有多想要实现你的目的。 2020...

  • 《金文成〈正蒙〉日记115。2020-10-31》

    《金文成〈正蒙〉日记115。2020-10-31》 今天是庚子丙戌丁未,九月十五,2020年10月31日星期六。 ...

网友评论

      本文标题:2020-10-31

      本文链接:https://www.haomeiwen.com/subject/votsvktx.html