Android : M 与 N 的权限管理

Posted davesuen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android : M 与 N 的权限管理相关的知识,希望对你有一定的参考价值。

从 M 开始,permission 分为

  • Normal permission
  • Runtime permission

Normal permission 直接在 manifest 里声明就可以用了。

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CHANGE_WIMAX_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FLASHLIGHT
android.permission.GET_ACCOUNTS
android.permission.GET_PACKAGE_SIZE
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SET_TIME_ZONE
android.permission.SET_WALLPAPER
android.permission.SET_WALLPAPER_HINTS
android.permission.SUBSCRIBED_FEEDS_READ
android.permission.TRANSMIT_IR
android.permission.USE_FINGERPRINT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS
com.android.alarm.permission.SET_ALARM
com.android.launcher.permission.INSTALL_SHORTCUT
com.android.launcher.permission.UNINSTALL_SHORTCUT
View Code

Runtime permission 需要询问用户,获得用户许可后才能用。

需要Android SDK 23以后,在 manifest 里声明。

然后加入权限管理的代码。

Runtime permission 分为小组。每个小组包括多个权限。一旦获得小组中的一个权限,其他权限也直接被授予。

权限管理步骤:

  • 判断是否拥有某个权限  
if (checkSelfPermission(WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
    ...
}
  • 如果没有这个权限,申请权限
requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE},REQUEST_STORAGE);
  • 如果用户拒绝权限,可以决定不再询问货继续询问
  • 如果用户拒绝的时候勾选 (don\'t ask again),不再询问或显示一个 dialog 让用户转到设置里接受权限(注意:这种情况下系统不能再显示权限询问的 dialog)。

 

以上是关于Android : M 与 N 的权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Android:使用支持片段管理器时复制片段

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

如何使用Android片段管理器传递变量[重复]

Android Studio第四十期 - 上传头像功能支持权限管理

Android 文件管理分区存储 ( 创建与查询图片文件 )

Android M 权限对话框未显示