Android 6.0权限请求相关及权限分组方法

 更新时间:2018年08月04日 15:51:30   作者:谭东jay  
今天小编就为大家分享一篇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开发之SQLite的使用方法

    Android开发之SQLite的使用方法

    本篇文章介绍了,Android开发之SQLite的使用方法。需要的朋友参考下
    2013-04-04
  • Android支付宝和微信支付集成

    Android支付宝和微信支付集成

    这篇文章主要为大家详细介绍了Android支付宝和微信支付集成的相关资料,需要的朋友可以参考下
    2016-07-07
  • Android异步消息机制详解

    Android异步消息机制详解

    这篇文章主要为大家详细介绍了Android异步消息机制的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡

    Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡

    这篇文章主要介绍了Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡的相关资料,需要的朋友可以参考下
    2016-01-01
  • Android ViewPager实现每隔两秒自动切换图片功能

    Android ViewPager实现每隔两秒自动切换图片功能

    图片来回自动切换,设计非常人性化,那么图片自动切换功能基于代码如何实现的呢?下面小编给大家带来了Android ViewPager实现每隔两秒自动切换图片功能,感兴趣的朋友一起看看吧
    2021-10-10
  • Android使用插件实现代码混淆

    Android使用插件实现代码混淆

    这篇文章主要介绍了Android如何使用插件实现代码混淆,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
    2021-03-03
  • Android获取设备CPU核数、时钟频率以及内存大小的方法

    Android获取设备CPU核数、时钟频率以及内存大小的方法

    这篇文章主要介绍了Android获取设备CPU核数、时钟频率以及内存大小的方法,涉及Android针对系统硬件相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • Android添加glide库报错Error: Failed to resolve: com.android.support:support-annotations:26.0.2的解决

    Android添加glide库报错Error: Failed to resolve: com.android.suppo

    这篇文章主要给大家介绍了关于Android添加glide库报错Error: Failed to resolve: com.android.support:support-annotations:26.0.2的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-11-11
  • 谷歌被屏蔽后如何搭建安卓环境

    谷歌被屏蔽后如何搭建安卓环境

    从5月27日开始,谷歌(Google)在华的几乎所有的服务都处于无法使用的状态,除了搜索引擎遭到屏蔽之外,谷歌的邮箱(Gmail)、日历(Calendar)、翻译(Translate)、地图(Maps)、分析(Analytics)和Google AdSense等产品也受到了影响。同时安装安卓环境的时候同样容易出现问题
    2014-06-06
  • Android 混合动画详解及实现代码

    Android 混合动画详解及实现代码

    这篇文章主要介绍了Android 混合动画详解及实现代码的相关资料,简单的一种动画(如旋转、缩放、渐变、位移等)有时候并不能满足我们项目的要求,这时候就需要运用到混合动画,需要的朋友可以参考下
    2016-11-11

最新评论