美文网首页
Android 6.0权限管理笔记

Android 6.0权限管理笔记

作者: 卖梦想的男孩 | 来源:发表于2017-02-16 16:34 被阅读64次

    Android系统6.0之后的应用权限管理策略做了改动,把权限做了安全的划分:普通权限和需要申请的用户权限

    1. 普通权限
      如果你的应用仅支持6.0以下手机,不需要考虑,系统不会做这个检查策略。
      如果你的应用支持6.0以上且不需要访问用户隐私相关的意图,这个也不需要做检查。(除了用户权限的9大安全,其他照旧)
      普通权限处理方式只需要在AndroidManifest.xml中直接申请即可,用户在安装的时候知道有这个权限就行。

    2. 用户权限
      该权限是在6.0以上需要做提前声明并提示用户手动允许的才可以继续操作,否则应用会出现崩溃。
      该部分应用涉及9大分组,每个分组只要同意了一个权限,同分组的其他全向一并获取,也就是说9大分组告诉用户应用会涉及他的哪部分信息。所有的权限可以查看Manifest.java查看

    //1.日历相关
    public static final String CALENDAR = "android.permission-group.CALENDAR";
    //2.相机相关
    public static final String CAMERA = "android.permission-group.CAMERA";
    //3.联系人相关
    public static final String CONTACTS = "android.permission-group.CONTACTS";
    //4.位置相关
    public static final String LOCATION = "android.permission-group.LOCATION";
    //5.麦克风相关
    public static final String MICROPHONE = "android.permission-group.MICROPHONE";
    //6.手机信息相关
    public static final String PHONE = "android.permission-group.PHONE";
    //7.传感器相关
    public static final String SENSORS = "android.permission-group.SENSORS";
    //8.短信相关
    public static final String SMS = "android.permission-group.SMS";
    //9.存储相关
    public static final String STORAGE = "android.permission-group.STORAGE";
    

    用户权限使用也需要现在AndoridManifest.xml中声明,并且在运行时需要做授权检查。
    相关API

    //检查是否已经授权某权限
    //PackageManager.PERMISSION_GRANTED 0
    //PackageManager.PERMISSION_DENIED -1
    ActivityCompat.checkSelfPermission(Activity activity, Stirng permission)
    //请求授权
    requestPermissions(Activity activity, String[] permissions,int requestCode)
    //授权回调
    onRequestPermissionsResult(int requestCode, String[] permissions,int[] grantResults) 
    

    目前高版本的AS已经自动检测存在权限风险的代码,如果自己已经封装或者确定获取了权限,可去掉该相关Lint检查或try一下。(有代码洁癖的人绝对忍受不了报个红叉)

    相关文章

      网友评论

          本文标题:Android 6.0权限管理笔记

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