此博客主要谈谈Android6.0的权限,关于其他6.0的知识 请看https://developer.android.com/about/versions/marshmallow/android-6.0.html

Android将权限分为正常权限 和 危险权限

Android系统权限分为几个保护级别。需要了解的两个最重要保护级别是 正常权限 和 危险权限:

(1)正常权限:

涵盖应用需要访问其沙盒外部数据或资源,但对用户隐私或其他应用操作风险很小的区域。

这些权限在应用安装时授予,运行时不再询问用户。例如: 网络访问、WIFI状态、音量设置等。

(2)危险权限:

涵盖应用需要涉及用户隐私信息的数据或资源,或者可能对用户存储的数据或其他应用的操作产生影响的区域。

例如: 读取通讯录、读写存储器数据、获取用户位置等。如果应用声明需要这些危险权限,则必须在运行时明确告诉用户,让用户手动授予。

Android系统对所有的危险权限进行了分组,称为 权限组 。

属于同一组的危险权限将自动合并授予,用户授予应用某个权限组的权限,则应用将获得该权限组下的所有权限(前提是相关权限在 AndroidManifest.xml 中有声明)。

正常权限:和原来的使用方式一样,只需在AndroidManifest.xml中添加即可

危险权限:要使用的话就要申请了,(前提是相关权限在 AndroidManifest.xml 中也要有声明)通过Java代码申请。

权限表

  1. 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限
  2. 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米
  3. 获取精确位置 android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内
  4. 获取模拟定位信息 android.permission.ACCESS_MOCK_LOCATION,获取模拟定位信息,一般用于帮助开发者调试应用
  5. 获取网络状态 android.permission.ACCESS_NETWORK_STATE,获取网络信息状态,如当前的网络连接是否有效
  6. 访问Surface Flinger android.permission.ACCESS_SURFACE_FLINGER,Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图
  7. 获取WiFi状态 android.permission.ACCESS_WIFI_STATE,获取当前WiFi接入的状态以及WLAN热点的信息
  8. 账户管理 android.permission.ACCOUNT_MANAGER,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限
  9. 验证账户 android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息
  10. 电量统计 android.permission.BATTERY_STATS,获取电池电量统计信息
  11. 绑定小插件 android.permission.BIND_APPWIDGET,允许一个程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限
  12. 绑定设备管理 android.permission.BIND_DEVICE_ADMIN,请求系统管理员接收者receiver,只有系统才能使用
  13. 绑定输入法 android.permission.BIND_INPUT_METHOD ,请求InputMethodService服务,只有系统才能使用
  14. 绑定RemoteView android.permission.BIND_REMOTEVIEWS,必须通过RemoteViewsService服务来请求,只有系统才能用
  15. 绑定壁纸 android.permission.BIND_WALLPAPER,必须通过WallpaperService服务来请求,只有系统才能用
  16. 使用蓝牙 android.permission.BLUETOOTH,允许程序连接配对过的蓝牙设备
  17. 蓝牙管理 android.permission.BLUETOOTH_ADMIN,允许程序进行发现和配对新的蓝牙设备
  18. 变成砖头 android.permission.BRICK,能够禁用手机,非常危险,顾名思义就是让手机变成砖头
  19. 应用删除时广播 android.permission.BROADCAST_PACKAGE_REMOVED,当一个应用在删除时触发一个广播
  20. 收到短信时广播 android.permission.BROADCAST_SMS,当收到短信时触发一个广播
  21. 连续广播 android.permission.BROADCAST_STICKY,允许一个程序收到广播后快速收到下一个广播
  22. WAP PUSH广播 android.permission.BROADCAST_WAP_PUSH,WAP PUSH服务收到后触发一个广播
  23. 拨打电话 android.permission.CALL_PHONE,允许程序从非系统拨号器里输入电话号码
  24. 通话权限 android.permission.CALL_PRIVILEGED,允许程序拨打电话,替换系统的拨号器界面
  25. 拍照权限 android.permission.CAMERA,允许访问摄像头进行拍照
  26. 改变组件状态 android.permission.CHANGE_COMPONENT_ENABLED_STATE,改变组件是否启用状态
  27. 改变配置 android.permission.CHANGE_CONFIGURATION,允许当前应用改变配置,如定位
  28. 改变网络状态 android.permission.CHANGE_NETWORK_STATE,改变网络状态如是否能联网
  29. 改变WiFi多播状态 android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态
  30. 改变WiFi状态 android.permission.CHANGE_WIFI_STATE,改变WiFi状态
  31. 清除应用缓存 android.permission.CLEAR_APP_CACHE,清除应用缓存
  32. 清除用户数据 android.permission.CLEAR_APP_USER_DATA,清除应用的用户数据
  33. 底层访问权限 android.permission.CWJ_GROUP,允许CWJ账户组访问底层信息
  34. 手机优化大师扩展权限 android.permission.CELL_PHONE_MASTER_EX,手机优化大师扩展权限
  35. 控制定位更新 android.permission.CONTROL_LOCATION_UPDATES,允许获得移动网络定位信息改变
  36. 删除缓存文件 android.permission.DELETE_CACHE_FILES,允许应用删除缓存文件
  37. 删除应用 android.permission.DELETE_PACKAGES,允许程序删除应用
  38. 电源管理 android.permission.DEVICE_POWER,允许访问底层电源管理
  39. 应用诊断 android.permission.DIAGNOSTIC,允许程序到RW到诊断资源
  40. 禁用键盘锁 android.permission.DISABLE_KEYGUARD,允许程序禁用键盘锁
  41. 转存系统信息 android.permission.DUMP,允许程序获取系统dump信息从系统服务
  42. 状态栏控制 android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏
  43. 工厂测试模式 android.permission.FACTORY_TEST,允许程序运行工厂测试模式
  44. 使用闪光灯 android.permission.FLASHLIGHT,允许访问闪光灯
  45. 强制后退 android.permission.FORCE_BACK,允许程序强制使用back后退按键,无论Activity是否在顶层
  46. 访问账户Gmail列表 android.permission.GET_ACCOUNTS,访问GMail账户列表
  47. 获取应用大小 android.permission.GET_PACKAGE_SIZE,获取应用的文件大小
  48. 获取任务信息 android.permission.GET_TASKS,允许程序获取当前或最近运行的应用
  49. 允许全局搜索 android.permission.GLOBAL_SEARCH,允许程序使用全局搜索功能
  50. 硬件测试 android.permission.HARDWARE_TEST,访问硬件辅助设备,用于硬件测试
  51. 注射事件 android.permission.INJECT_EVENTS,允许访问本程序的底层事件,获取按键、轨迹球的事件流
  52. 安装定位提供 android.permission.INSTALL_LOCATION_PROVIDER,安装定位提供
  53. 安装应用程序 android.permission.INSTALL_PACKAGES,允许程序安装应用
  54. 内部系统窗口 android.permission.INTERNAL_SYSTEM_WINDOW,允许程序打开内部窗口,不对第三方应用程序开放此权限
  55. 访问网络 android.permission.INTERNET,访问网络连接,可能产生GPRS流量
  56. 结束后台进程 android.permission.KILL_BACKGROUND_PROCESSES,允许程序调用killBackgroundProcesses(String).方法结束后台进程
  57. 管理账户 android.permission.MANAGE_ACCOUNTS,允许程序管理AccountManager中的账户列表
  58. 管理程序引用 android.permission.MANAGE_APP_TOKENS,管理创建、摧毁、Z轴顺序,仅用于系统
  59. 高级权限 android.permission.MTWEAK_USER,允许mTweak用户访问高级系统权限
  60. 社区权限 android.permission.MTWEAK_FORUM,允许使用mTweak社区权限
  61. 软格式化 android.permission.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息
  62. 修改声音设置 android.permission.MODIFY_AUDIO_SETTINGS,修改声音设置信息
  63. 修改电话状态 android.permission.MODIFY_PHONE_STATE,修改电话状态,如飞行模式,但不包含替换系统拨号器界面
  64. 格式化文件系统 android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移动文件系统,比如格式化清空SD卡
  65. 挂载文件系统 android.permission.MOUNT_UNMOUNT_FILESYSTEMS,挂载、反挂载外部文件系统
  66. 允许NFC通讯 android.permission.NFC,允许程序执行NFC近距离通讯操作,用于移动支持
  67. 永久Activity android.permission.PERSISTENT_ACTIVITY,创建一个永久的Activity,该功能标记为将来将被移除
  68. 处理拨出电话 android.permission.PROCESS_OUTGOING_CALLS,允许程序监视,修改或放弃播出电话
  69. 读取日程提醒 android.permission.READ_CALENDAR,允许程序读取用户的日程信息
  70. 读取联系人 android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息
  71. 屏幕截图 android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图
  72. 读取收藏夹和历史记录 com.android.browser.permission.READ_HISTORY_BOOKMARKS,读取浏览器收藏夹和历史记录
  73. 读取输入状态 android.permission.READ_INPUT_STATE,读取当前键的输入状态,仅用于系统
  74. 读取系统日志 android.permission.READ_LOGS,读取系统底层日志
  75. 读取电话状态 android.permission.READ_PHONE_STATE,访问电话状态
  76. 读取短信内容 android.permission.READ_SMS,读取短信内容
  77. 读取同步设置 android.permission.READ_SYNC_SETTINGS,读取同步设置,读取Google在线同步设置
  78. 读取同步状态 android.permission.READ_SYNC_STATS,读取同步状态,获得Google在线同步状态
  79. 重启设备 android.permission.REBOOT,允许程序重新启动设备
  80. 开机自动允许 android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行
  81. 接收彩信 android.permission.RECEIVE_MMS,接收彩信
  82. 接收短信 android.permission.RECEIVE_SMS,接收短信
  83. 接收Wap Push android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息
  84. 录音 android.permission.RECORD_AUDIO,录制声音通过手机或耳机的麦克
  85. 排序系统任务 android.permission.REORDER_TASKS,重新排序系统Z轴运行中的任务
  86. 结束系统任务 android.permission.RESTART_PACKAGES,结束任务通过restartPackage(String)方法,该方式将在外来放弃
  87. 发送短信 android.permission.SEND_SMS,发送短信
  88. 设置Activity观察其 android.permission.SET_ACTIVITY_WATCHER,设置Activity观察器一般用于monkey测试
  89. 设置闹铃提醒 com.android.alarm.permission.SET_ALARM,设置闹铃提醒
  90. 设置总是退出 android.permission.SET_ALWAYS_FINISH,设置程序在后台是否总是退出
  91. 设置动画缩放 android.permission.SET_ANIMATION_SCALE,设置全局动画缩放
  92. 设置调试程序 android.permission.SET_DEBUG_APP,设置调试程序,一般用于开发
  93. 设置屏幕方向 android.permission.SET_ORIENTATION,设置屏幕方向为横屏或标准方式显示,不用于普通应用
  94. 设置应用参数 android.permission.SET_PREFERRED_APPLICATIONS,设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍
  95. 设置进程限制 android.permission.SET_PROCESS_LIMIT,允许程序设置最大的进程数量的限制
  96. 设置系统时间 android.permission.SET_TIME,设置系统时间
  97. 设置系统时区 android.permission.SET_TIME_ZONE,设置系统时区
  98. 设置桌面壁纸 android.permission.SET_WALLPAPER,设置桌面壁纸
  99. 设置壁纸建议 android.permission.SET_WALLPAPER_HINTS,设置壁纸建议
  100. 发送永久进程信号 android.permission.SIGNAL_PERSISTENT_PROCESSES,发送一个永久的进程信号
  101. 状态栏控制 android.permission.STATUS_BAR,允许程序打开、关闭、禁用状态栏
  102. 访问订阅内容 android.permission.SUBSCRIBED_FEEDS_READ,访问订阅信息的数据库
  103. 写入订阅内容 android.permission.SUBSCRIBED_FEEDS_WRITE,写入或修改订阅内容的数据库
  104. 显示系统窗口 android.permission.SYSTEM_ALERT_WINDOW,显示系统窗口
  105. 更新设备状态 android.permission.UPDATE_DEVICE_STATS,更新设备状态
  106. 使用证书 android.permission.USE_CREDENTIALS,允许程序请求验证从AccountManager
  107. 使用SIP视频 android.permission.USE_SIP,允许程序使用SIP视频服务
  108. 使用振动 android.permission.VIBRATE,允许振动
  109. 唤醒锁定 android.permission.WAKE_LOCK,允许程序在手机屏幕关闭后后台进程仍然运行
  110. 写入GPRS接入点设置 android.permission.WRITE_APN_SETTINGS,写入网络GPRS接入点设置
  111. 写入日程提醒 android.permission.WRITE_CALENDAR,写入日程,但不可读取
  112. 写入联系人 android.permission.WRITE_CONTACTS,写入联系人,但不可读取
  113. 写入外部存储 android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储,如SD卡上写文件
  114. 写入Google地图数据 android.permission.WRITE_GSERVICES,允许程序写入Google Map服务数据
  115. 写入收藏夹和历史记录 com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,写入浏览器历史记录或收藏夹,但不可读取
  116. 读写系统敏感设置 android.permission.WRITE_SECURE_SETTINGS,允许程序读写系统安全敏感的设置项
  117. 读写系统设置 android.permission.WRITE_SETTINGS,允许读写系统设置项
  118. 编写短信 android.permission.WRITE_SMS,允许编写短信
  119. 写入在线同步设置 android.permission.WRITE_SYNC_SETTINGS,写入Google在线同步设置

危险权限(官方文档的表 官网表:https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

中文翻译过来如下:

group:android.permission-group.CALENDAR 日历
  permission:android.permission.READ_CALENDAR 读取日历
  permission:android.permission.WRITE_CALENDAR 写入日历

group:android.permission-group.CAMERA 照相机
  permission:android.permission.CAMERA

group:android.permission-group.CONTACTS 通讯录方面
  permission:android.permission.WRITE_CONTACTS 写入通讯录
  permission:android.permission.GET_ACCOUNTS 访问通讯录权限
  permission:android.permission.READ_CONTACTS 读取通讯录

group:android.permission-group.LOCATION 位置
  permission:android.permission.ACCESS_FINE_LOCATION 获取位置
  permission:android.permission.ACCESS_COARSE_LOCATION 获取粗略定位

group:android.permission-group.MICROPHONE 扩音器;麦克风
permission:android.permission.RECORD_AUDIO 录音

group:android.permission-group.PHONE 电话方面
  permission:android.permission.READ_CALL_LOG 看电话记录
  permission:android.permission.READ_PHONE_STATE 读取手机状态
  permission:android.permission.CALL_PHONE 打电话
  permission:android.permission.WRITE_CALL_LOG 编写调用日志
  permission:android.permission.USE_SIP 使用SIP
  permission:android.permission.PROCESS_OUTGOING_CALLS 过程输出调用   permission:com.android.voicemail.permission.ADD_VOICEMAIL 添加语音信箱

group:android.permission-group.SENSORS 传感器
  permission:android.permission.BODY_SENSORS 体传感器
 
group:android.permission-group.SMS 信息
 permission:android.permission.READ_SMS 读取信息   
  permission:android.permission.RECEIVE_WAP_PUSH 收到WAP推送
  permission:android.permission.RECEIVE_MMS 接收彩信
  permission:android.permission.RECEIVE_SMS 收信息
  permission:android.permission.SEND_SMS 发信息
  permission:android.permission.READ_CELL_BROADCASTS 读广播

group:android.permission-group.STORAGE 存储
  permission:android.permission.READ_EXTERNAL_STORAGE 读取外部存储器  
  permission:android.permission.WRITE_EXTERNAL_STORAGE 写外部存储器

Android6.0------权限管理的更多相关文章

  1. Android6.0权限管理以及使用权限该注意的地方

    Android 6.0 Marshmallow首次增加了执行时权限管理,这对用户来说,能够更好的了解.控 制 app 涉及到的权限.然而对开发人员来说却是一件比較蛋疼的事情.须要兼容适配,并保证程序功 ...

  2. android6.0权限管理工具EasyPermissionUtil

    前言 android6.0開始,权限的申请发生了改变,申请变的动态化,也就是执行时权限,和iOS相仿,动态化的意思是指,在每次使用须要危急权限的方法的时候.须要检查程序是否获得了该权限的许可.动态化的 ...

  3. Android6.0权限大全和权限分类

    本文转载至: https://blog.csdn.net/qq_26440221/article/details/53097868 自从出了Android6.0权限管理之后,再也不能像以前那样粘贴复制 ...

  4. Android开发——Android 6.0权限管理机制详解

    .Android 6.0运行时主动请求权限 3.1  检测和申请权限 下面的例子介绍上面列出的读写SD卡的使用例子,可以使用以下的方式解决: public boolean isGrantExterna ...

  5. Android 6.0权限管理

    Android 6.0权限管理 关于权限管理 Android6.0 发布之后,Android 的权限系统被重新设计.在 23 之前 App 的权限只会在用户安装的时候询问一次,App一旦安装后就可以使 ...

  6. Android_设备隐私获取,忽略6.0权限管理

    1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: ...

  7. Android教程 -05 Android6.0权限的管理

    视频为本篇博客知识的讲解,建议采用超清模式观看, 欢迎点击订阅我的优酷 上篇文章我们讲解了通过隐式意图拨打电话,在AndroidManifest.xml文件中添加了权限 <uses-permis ...

  8. Android获取设备隐私 忽略6.0权限管理

    1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: ...

  9. Android 6.0 权限管理最佳实践

    博客: Android 6.0 运行时权限管理最佳实践 github: https://github.com/yanzhenjie/AndPermission

  10. Android 6.0 权限管理

    google官方例子: https://github.com/googlesamples/android-RuntimePermissions Android 6.0在我们原有的AndroidMani ...

随机推荐

  1. java中使用MD5对密码进行加密

    import org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder; import org ...

  2. 带宽、流量、CDN

    1.啥叫带宽? 1.1 带宽的概念: 在网络中的带宽往往是指一个固定的时间内,能通过的最大位数据,即数据传输率.带宽是一个计量单位,用来计量单位时间内传输的数据量的多少. 1.2 计量单位: 这个数据 ...

  3. Codeforces Round #425 (Div. 2) B - Petya and Exam

    地址:http://codeforces.com/contest/832/problem/B 题目: B. Petya and Exam time limit per test 2 seconds m ...

  4. cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing file.

    程序运行的时候输出这条信息cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing fi ...

  5. 滑块控件CCControlSlider

    #include "cocos-ext.h" //包含头文件 using namespace cocos2d::extension;//引用命名空间 /** * 创建CCContr ...

  6. kafka的javaapi生产者生产消息,消费者获取不到

    zookeeper和kafka的日志没有出现什么报错 linux下kafka的命令行能生产并收到消费消息 但是在idea(windows环境下)中,调用api,获取不到数据,也生产不了数据,现象就是没 ...

  7. windows安装VisualSVN Server

  8. STC12C系列单片机PWM脉宽调制

    最近给别人做了一个小东西,MCU选的是STC12C5A60S2 ,需要用到PWM控制功能. 在网上找了一下,发现解释的不尽人意,无奈之下自己琢磨数据手册弄明白了. 首先,STC12C5A60S2内置有 ...

  9. ARTS Week 001

    Algorithm Leetcode 1. Two Sum Given an array of integers, return indices of the two numbers such tha ...

  10. 【读书笔记】《深入浅出nodejs》第五章 内存控制

    海量请求+长时间运行 -> 内存控制 -> 一切资源高效循环利用 1. V8的垃圾回收机制与内存限制 在Node中通过JavaScript使用内存时,只能使用部分内存(64位系统下约1.4 ...