美文网首页
Android 权限介绍

Android 权限介绍

作者: 郭海萍 | 来源:发表于2018-03-13 21:02 被阅读0次

介绍

前言

课程提醒功能,需要在日历中为课程添加相应的信息,但是在oppo手机,点击拒绝了,fe提示添加到日历成功,优化此处代码

Android 权限机制简介

6.0之前:在menifest注册,用户安装app会有一个权限列表,类似一份协议表示用户对此已经知晓,造成权限胡乱申请,对用户造成风险

6.0之后(包含6.0):9组危险权限,不仅要在manifest注册还要动态申请权限,比如调用拍照会弹出权限提示,只有用户自己点了确定才能继续拍照。

安全权限

只要在manifest.xml中列出即可

危险权限

1.targetSDKVersion < 23 & API(手机系统) < 6.0 :默认用户获得所有权限,并且无法手动更改权限配置(在华为4.4手机上,拍照会提示权限申请)

2.targetSDKVersion < 23 & API(手机系统) >= 6.0:默认用户获得所有权限,可以手动更改权限配置,( 取消时手机会弹出提醒,告诉用户这个是为旧版手机打造的应用,让用户谨慎操作 ),启用app,不会弹出设置权限的提示框(华为,oppo,小米都这样,其他手机没有测试)

3.targetSDKVersion >=23 & API(手机系统) < 6.0 :默认用户获得所有权限,并且无法手动更改权限配置

4.targetSDKVersion >=23 & API(手机系统)>=6.0 :安装时候不会获得权限,运行时向用户申请权限,用户授权以后仍然可以在设置界面中取消授权,用户主动在设置界面取消后,在没有检验有无该权限的情况下,执行代码,在app运行过程中可能会出现crash。

封装

没有办法自己写个工具类拿到回调,因为权限回调在onRequestPermissionsResult是在Activity或者Fragment的方法

1.自定义一个PermissionActivity,专门用于处理申请运行时权限操作。该Activity背景透明,用户无法察觉。执行完后finish掉。

2.RxPermision 开源框架:https://github.com/tbruyelle/RxPermissions ,基本思路是透明的Fragment加入到当前的Activity来处理回调,比上面的方法更巧妙,但是可以不用Rxjava

3.封装BaseActivity去实现运行时权限申请方法,然后所有Activity继承BaseActivity,需要时调用方法即可。

2,3方法demo见:GitHub - guohaiping521/PermissionDemo: 申请权限工具类的封装

实际开发的问题

1.没有判断权限的情况下,进行一些需要权限的操作,可能会崩溃,可能没反应,所以不要在没有判断权限的情况下,想当然做一些操作。

1>在代码中我们针对Android6.0的权限检测(ContextCompat.checkSelfPermission和requestPermission)按照正常的写,保证在Android6.0以上的设备正常运行。

2>然后在具体的操作比如拨号,拍照或者录音,加一层tyr catch,能捕获到异常最好,不能捕获到的话继续第三步。

3>对具体机型我们加入if判断,对操作数据做合法性判断

2. Android6.0之后,权限分为install时的权限跟运行时权限

Context checkSelfPermission只检查的install的权限,默认是true

targetSdkVersion<23检查6.0权限情况的解决方案:PermissionChecker.checkSelfPermission

下面是关于Android权限检查API checkSelfPermission失效问题的解释

https://www.jianshu.com/p/d5c1a88f79c4

本篇文章主要参考:

https://www.jianshu.com/p/a9060b1599dc

https://juejin.im/post/59e01ece51882578c6736db7

http://blog.csdn.net/u010263943/article/details/71467877

相关文章

  • 无标题文章

    Android 6.0 运行时权限处理 标签(空格分隔): android 运行时权限介绍 Android 6.0...

  • APP开发实战81-Android权限分类

    21 Android权限介绍 21.1权限分类 Android6.0及以上系统采用了新的权限,将权限分为两类。 2...

  • android 6.0权限

    android 权限总结 以及权限工具类介绍 在android 6.0以前 开发者想要什么权限只需要在AndMan...

  • Android 6.0运行时权限管理

    一、Android 6.0权限的简单介绍 在Android6.0以前的设备上,android的权限只在安装的时候被...

  • 组件化-权限管理

    权限是一个高度重视的问题,这里我们主要介绍Android开发中常用的两种权限,git权限和Android权限。 g...

  • Android 权限介绍

    介绍 前言: 课程提醒功能,需要在日历中为课程添加相应的信息,但是在oppo手机,点击拒绝了,fe提示添加到日历成...

  • Android权限(二)

    在Android权限(一)中,介绍了Android中的所有权限。随着Android 6.0发布以及普及,我们开发者...

  • Android 6.0权限机制

    参考1 一:Android 6.0权限机制的基本介绍 6.0以下的权限: 在安装的时候,根据权限声明产生一个权限...

  • Android 手机

    本文主要介绍 Android 手机系统权限处理方式 前言 随着 Android 设备的广泛引用,Google 对于...

  • Android6.0权限回顾

    一、6.0权限介绍 Android6.0提交对权限进行了较大的优化,权限根据用户隐私区分两类:一般权限和运行时权限...

网友评论

      本文标题:Android 权限介绍

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