Android 6.0 权限申请辅助 ----PermissionsHelper
Android 6.0 权限申请辅助 ----PermissionsHelper
项目地址:https://github.com/didikee/PermissionsHelper
Android 的危险权限分为9组.如下所示
CALENDAR
READ_CALENDAR
WRITE_CALENDAR
CAMERA
CAMERA
CONTACTS
READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
LOCATION
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
MICROPHONE
RECORD_AUDIO
PHONE
READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
SENSORS
BODY_SENSORS
SMS
SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
STORAGE
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
1. AndroidManifest.xml
9组 危险权限,按照你的项目需求申请,不要盲目,切勿贪婪.更不要偷懒复制粘贴
<!-- Dangerous Permissions start -->
<!--PHONE-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.ADD_VOICEMAIL"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.USE_SIP"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<!--CALENDAR-->
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<!--CAMERA-->
<uses-permission android:name="android.permission.CAMERA"/>
<!--CONTACTS-->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<!--LOCATION-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--MICROPHONE-->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--SENSORS-->
<uses-permission android:name="android.permission.BODY_SENSORS"/>
<!--SMS-->
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<!--STORAGE-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Dangerous Permissions end -->
2. 在Activity中使用
public class PermissionsActivity extends AppCompatActivity {// app所需要的全部危险权限static final String[] PERMISSIONS = new String[]{DangerousPermissions.CALENDAR,DangerousPermissions.CAMERA,DangerousPermissions.CONTACTS,DangerousPermissions.LOCATION,DangerousPermissions.MICROPHONE,DangerousPermissions.PHONE,DangerousPermissions.STORAGE,DangerousPermissions.SENSORS,DangerousPermissions.SMS};private PermissionsHelper permissionsHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_permissions);checkPermissions();}private void checkPermissions() {permissionsHelper = new PermissionsHelper(this,PERMISSIONS);if (permissionsHelper.checkAllPermissions(PERMISSIONS)){permissionsHelper.onDestroy();//doSomething}else {//申请权限permissionsHelper.startRequestNeedPermissions();}permissionsHelper.setonAllNeedPermissionsGrantedListener(new PermissionsHelper.onAllNeedPermissionsGrantedListener() {@Overridepublic void onAllNeedPermissionsGranted() {Log.d("test","onAllNeedPermissionsGranted");}@Overridepublic void onPermissionsDenied() {Log.d("test","onPermissionsDenied");}});}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);permissionsHelper.onRequestPermissionsResult(requestCode, permissions, grantResults);}
}
9 组危险权限 (Dangerous Permissions)
public final class DangerousPermissions {/*** Google doc:* If an app requests a dangerous permission listed in its manifest,* and the app already has another dangerous permission in the same* permission group, the system immediately grants the permission* without any interaction with the user. For example, if an app had* previously requested and been granted the READ_CONTACTS permission,* and it then requests WRITE_CONTACTS, the system immediately grants that permission.*//** permission group : PHONE* READ_PHONE_STATE* CALL_PHONE* READ_CALL_LOG* WRITE_CALL_LOG* ADD_VOICEMAIL* USE_SIP* PROCESS_OUTGOING_CALLS*/public static final String PHONE= Manifest.permission.READ_PHONE_STATE;/*** permission group : CALENDAR* READ_CALENDAR* WRITE_CALENDAR*/public static final String CALENDAR= Manifest.permission.READ_CALENDAR;/*** permission group : CAMERA* CAMERA*/public static final String CAMERA= Manifest.permission.CAMERA;/*** permission group : CONTACTS* READ_CONTACTS* WRITE_CONTACTS* GET_ACCOUNTS*/public static final String CONTACTS= Manifest.permission.READ_CONTACTS;/*** permission group : LOCATION* ACCESS_FINE_LOCATION* ACCESS_COARSE_LOCATION*/public static final String LOCATION= Manifest.permission.ACCESS_FINE_LOCATION;/*** permission group : MICROPHONE* RECORD_AUDIO*/public static final String MICROPHONE= Manifest.permission.RECORD_AUDIO;/*** permission group : SENSORS* BODY_SENSORS*/public static final String SENSORS= Manifest.permission.BODY_SENSORS;/*** permission group : SMS* SEND_SMS* RECEIVE_SMS* READ_SMS* RECEIVE_WAP_PUSH* RECEIVE_MMS*/public static final String SMS= Manifest.permission.SEND_SMS;/*** permission group : STORAGE* READ_EXTERNAL_STORAGE* WRITE_EXTERNAL_STORAGE*/public static final String STORAGE= Manifest.permission.WRITE_EXTERNAL_STORAGE;}
运行时 申请权限 图示
转载于:https://www.cnblogs.com/didikee/p/5744470.html
Android 6.0 权限申请辅助 ----PermissionsHelper相关推荐
- android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission
Android超清晰6.0权限申请AndPermission的具体实现代码,供大家参考,具体内容如下 前言 这是我经常使用的框架,原因: 1.思路清晰 2.实现方便 开始 准备工作 导包 compil ...
- android危险权限分组,Android 6.0权限请求相关及权限分组方法
Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请. 权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限, ...
- Android m6.0权限问题调用封装utils类 - Permission in Android M
Android m6.0权限问题调用封装utils类 - Permission in Android M 1.概述 安卓平台权限一直有被流氓应用随便利用诟病, android M的发布彻底解决了这一问 ...
- 【酷熊科技】工作积累 ----------- android 6.0 权限问题
android 6.0 权限问题: android.permission.READ_PHONE_STATE <uses-feature android:name="android.pe ...
- android 6.0权限封装,Android6.0------权限申请管理(单个权限和多个权限申请)
Android开发时,到6.0系统上之后,有的权限就得申请才能用了. Android将权限分为正常权限 和 危险权限 Android系统权限分为几个保护级别.需要了解的两个最重要保护级别是 正常权限 ...
- Android之6.0 权限申请封装
之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用. 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextC ...
- android6.0麦克风权限,android 6.0权限检测以及6.0以下,麦克风、相机权限判断
android 6.0以上权限 android 6.0以上权限,我是通过PermissionsDispatcher进行申请,操作的,具体使用方法,见PermissionsDispatcher,Andr ...
- android 6.0权限库,Android 6.0动态权限适配
前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时 ...
- android 9.0 权限管理_你真的了解Android权限机制吗?
码个蛋(codeegg)第 610 次推文 作者:FeelsChaotic 原文:https://www.jianshu.com/p/a17c8bed79d9 前言 Android将安全设计贯穿系统架 ...
最新文章
- Asp.Net 之 下载文件的常用方式
- 深度学习: 从 RoIPooling 到 RoIAlign
- 一个卑微的程序员友链
- .NET 5 中的隐藏特性
- shell_之_find(查找)
- 配置grafana的数据源、添加监控
- 20171205_Matlab求方差,均值,均方差,协方差的函数
- QtSQL的使用心得
- 利用ettercap进行简单的arp欺骗和mitm攻击
- 此处纸薄不经墨,待入章中再续貂
- 小程序中生成带logo的二维码,有源码
- supervisor前端-cesi的安装
- 学生鲜花网页设计作品静态HTML网页模板源码 大学生鲜花商城网站制作 简单鲜花网站网页设计成品
- 常见测试用例设计之水杯
- 华为防火墙笔记-GRE
- linux基础内容,掌握这些基本可以流畅的使用linux系统
- Spring Data JPA分页查询
- monkey runner工具
- Penetration experience summary | Network security
- 2020.03.08测试题4
热门文章
- 信息流媒体变现_抖音信息流投放优势,为什么选择抖音信息流广告投放呢?
- ubuntu怎么设置linux的ip地址,linux,ubuntu设置ip
- MCU——简易单片机按键驱动程序分析
- C语言——负数据强制类型转换注意事项
- 从底层来看函数的调用和返回
- ax200黑苹果蓝牙驱动_家庭网络升级计划篇一:将无线进行到底,AX200网卡升级体验...
- 计算机关闭的时候自动更新,win7自动更新关闭有什么影响_win7系统关闭自动更新的步骤-win7之家...
- 普通索引和唯一索引,应该怎么选择?
- lua 面向对象入门
- SparkSQL入门