android危险权限分组,Android 6.0权限请求相关及权限分组方法
Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请。
权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限,需申请。
先看下Normal权限列表:
再看下Dangerous权限列表:
危险权限实际上才是运行时权限主要处理的对象,这些权限可能引起隐私问题或者影响其他程序运行。Android中的危险权限可以归为以下几个分组:
CALENDAR
CAMERA
CONTACTS
LOCATION
MICROPHONE
PHONE
SENSORS
SMS
STORAGE
各个权限分组与其具体的权限,可以参考下图:
想要不支持运行时权限机制很简单,只需要将targetSdkVersion设置低于23就可以了,意思是告诉系统,我还没有完全在API 23(6.0)上完全搞定,不要给我启动新的特性。
特殊权限:
就是一些特别敏感的权限,在Android系统中,主要由两个
SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技
WRITE_SETTINGS 修改系统设置
关于上面两个特殊权限的授权,做法是使用startActivityForResult启动授权界面来完成。
请求SYSTEM_ALERT_WINDOW
private static final int REQUEST_CODE = 1;
private void requestAlertWindowPermission() {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (Settings.canDrawOverlays(this)) {
Log.i(LOGTAG, "onActivityResult granted");
}
}
}
上述代码需要注意的是
使用Action Settings.ACTION_MANAGE_OVERLAY_PERMISSION启动隐式Intent
使用"package:" + getPackageName()携带App的包名信息
使用Settings.canDrawOverlays方法判断授权结果
请求WRITE_SETTINGS
private static final int REQUEST_CODE_WRITE_SETTINGS = 2;
private void requestWriteSettings() {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS );
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_WRITE_SETTINGS) {
if (Settings.System.canWrite(this)) {
Log.i(LOGTAG, "onActivityResult write settings granted" );
}
}
}
上述代码需要注意的是
使用Action Settings.ACTION_MANAGE_WRITE_SETTINGS 启动隐式Intent
使用"package:" + getPackageName()携带App的包名信息
使用Settings.System.canWrite方法检测授权结果
注意:关于这两个特殊权限,一般不建议应用申请。
其实你不需要每个权限都去显式申请,举一个例子,如果你的应用授权了读取联系人的权限,那么你的应用也是被赋予了写入联系人的权限。因为读取联系人和写入联系人这两个权限都属于联系人权限分组,所以一旦组内某个权限被允许,该组的其他权限也是被允许的。
以上这篇Android 6.0权限请求相关及权限分组方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
android危险权限分组,Android 6.0权限请求相关及权限分组方法相关推荐
- Android 6.0权限请求相关及权限分组
Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请. 权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限, ...
- Android开发手电筒(支持6.0以上系统智能申请权限)
手电筒小工具,在生活中的应用很广泛,目前的大部分手机都自带手电筒App.今天就和大家一起分享该功能的实现原理,下图分别是安卓Vivo4.0与华为7.0测试的效果图(gif最大不能超过5M,这里剪辑了) ...
- nuxt3.0学习-二、nuxt3.0的请求相关内容、状态管理(useState/Pinia)、cookie管理(useCookie)、token续期
请求相关内容 nuxt3.0提供的多种数据访问 API 上一次是nuxt3.0的安装和约定式的使用 接下来就是使用请求调整,Nuxt3 中提供的多种数据访问 API: $fetch: 使用时机: 首屏 ...
- android 获取照片 权限管理,安卓6.0以上 相册读取图片 权限问题
问题背景: 今天做Intent ACTION_PICK 相册读取, 已经在AndroidManifest中添加了权限, 然后选取后,图片无法显示. 原因是:android6.0之后不仅需要在Mainf ...
- [Android Studio]详细讲解Android6.0以上请求应用权限(解决请求权限窗口一闪而过的问题)
现在的主流手机的Android版本都是8.0/9.0(笔者的华为手机为9.0),所以在开发Android的时候尽量使用Android8.0的版本(SDK 26).随着Android版本的提升,系统的安 ...
- android manifest 权限组,Android的单个或多个权限动态申请
前言 在Android 6.0(API 级别 23)以下申请权限是非常简单的,直接在AndroidManifest.xml这个配置文件中加入申请权限的列表就可以了,比如我要申请四个权限,如下: 但是在 ...
- Android不使用支持库请求运行时权限
Android 6.0后,用户开始在应用运行时向其授予权限,而不是在应用安装时授予.Android官网上也有相关教程:在运行时请求权限.但教程是使用支持库来举例的,用支持库的话,APK的大小也会变得很 ...
- android危险权限分组,Android 中的危险权限详细整理
Android 中的危险权限详细整理 前言: Android 中有上百种权限,现在将所有的权限归为两类: 一类是普通权限 一类的危险权限 普通权限是指那些不会威胁到用户安全和隐私的权限,这部分权限系统 ...
- android 动态获取全县_android 6.0之后动态获取权限
1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...
最新文章
- 以Lazada为例,看电商系统架构演进
- 使用python 打造中国的电影光魔
- Intellij+maven:jar包冲突的解决方法(Hbase和Guava的冲突)
- Linux中关于useradd、chmod、chown、getfacl、setfact等权限设置
- 个人JS体系整理(二)
- Notification的功能和用法 加薪通知
- js获取用户当前所在城市(ip)
- 《Python Cookbook 3rd》笔记(1.20):合并多个字典或映射
- ZZULIOJ 1108: 打印数字图形(函数专题)
- iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样
- 基于javaweb+jsp的运动会体育比赛管理系统(带报告文档)
- 笔记本电脑开不了机怎么重装系统?小熊U盘重装win7系统教程
- Python 库学习 —— Excel存储(xlwt、xlrd)
- 黑苹果睡眠问题(仅适用自己的配置)
- Gtalent如何帮助HR招到薪酬专员,5条建议4点做法
- 最新微信hook3.0二次开发C#源码介绍
- 生活随记 - 申通快递鸡蛋全碎了
- 联想笔记本声音太小怎么办_笔记本声音太小,详细教您笔记本电脑声音太小解决方法...
- vue 修改模板{{}}标签_vue.js - Vue单文件的template标签
- 《指数基金投资指南》读书笔记---行业指数基金