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相关推荐

  1. android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission

    Android超清晰6.0权限申请AndPermission的具体实现代码,供大家参考,具体内容如下 前言 这是我经常使用的框架,原因: 1.思路清晰 2.实现方便 开始 准备工作 导包 compil ...

  2. android危险权限分组,Android 6.0权限请求相关及权限分组方法

    Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请. 权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限, ...

  3. Android m6.0权限问题调用封装utils类 - Permission in Android M

    Android m6.0权限问题调用封装utils类 - Permission in Android M 1.概述 安卓平台权限一直有被流氓应用随便利用诟病, android M的发布彻底解决了这一问 ...

  4. 【酷熊科技】工作积累 ----------- android 6.0 权限问题

    android 6.0 权限问题: android.permission.READ_PHONE_STATE <uses-feature android:name="android.pe ...

  5. android 6.0权限封装,Android6.0------权限申请管理(单个权限和多个权限申请)

    Android开发时,到6.0系统上之后,有的权限就得申请才能用了. Android将权限分为正常权限 和 危险权限 Android系统权限分为几个保护级别.需要了解的两个最重要保护级别是 正常权限  ...

  6. Android之6.0 权限申请封装

    之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用. 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextC ...

  7. android6.0麦克风权限,android 6.0权限检测以及6.0以下,麦克风、相机权限判断

    android 6.0以上权限 android 6.0以上权限,我是通过PermissionsDispatcher进行申请,操作的,具体使用方法,见PermissionsDispatcher,Andr ...

  8. android 6.0权限库,Android 6.0动态权限适配

    前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时 ...

  9. android 9.0 权限管理_你真的了解Android权限机制吗?

    码个蛋(codeegg)第 610 次推文 作者:FeelsChaotic 原文:https://www.jianshu.com/p/a17c8bed79d9 前言 Android将安全设计贯穿系统架 ...

最新文章

  1. Asp.Net 之 下载文件的常用方式
  2. 深度学习: 从 RoIPooling 到 RoIAlign
  3. 一个卑微的程序员友链
  4. .NET 5 中的隐藏特性
  5. shell_之_find(查找)
  6. 配置grafana的数据源、添加监控
  7. 20171205_Matlab求方差,均值,均方差,协方差的函数
  8. QtSQL的使用心得
  9. 利用ettercap进行简单的arp欺骗和mitm攻击
  10. 此处纸薄不经墨,待入章中再续貂
  11. 小程序中生成带logo的二维码,有源码
  12. supervisor前端-cesi的安装
  13. 学生鲜花网页设计作品静态HTML网页模板源码 大学生鲜花商城网站制作 简单鲜花网站网页设计成品
  14. 常见测试用例设计之水杯
  15. 华为防火墙笔记-GRE
  16. linux基础内容,掌握这些基本可以流畅的使用linux系统
  17. Spring Data JPA分页查询
  18. monkey runner工具
  19. Penetration experience summary | Network security
  20. 2020.03.08测试题4

热门文章

  1. 信息流媒体变现_抖音信息流投放优势,为什么选择抖音信息流广告投放呢?
  2. ubuntu怎么设置linux的ip地址,linux,ubuntu设置ip
  3. MCU——简易单片机按键驱动程序分析
  4. C语言——负数据强制类型转换注意事项
  5. 从底层来看函数的调用和返回
  6. ax200黑苹果蓝牙驱动_家庭网络升级计划篇一:将无线进行到底,AX200网卡升级体验...
  7. 计算机关闭的时候自动更新,win7自动更新关闭有什么影响_win7系统关闭自动更新的步骤-win7之家...
  8. 普通索引和唯一索引,应该怎么选择?
  9. lua 面向对象入门
  10. SparkSQL入门