[小坑] Android 6.0 获取SD卡等危险权限

  • 内容
  • 评论
  • 相关

因为Android 6.0(Android sdk 23)中,增加的动态权限的功能,将所有权限划为普通权限和危险权限,而读写SD卡则被划为危险权限,所以需要在主线程中动态申请。但是我按照Google来的代码却不能弹出申请权限的窗口。

String[] perms = {"android.permission.READ_EXTERNAL_STORAGE"};
int permsRequestCode = 200;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    requestPermissions(perms, permsRequestCode);
}

最后折腾了半天才发现,是我理解错了,危险权限也要先在AndroidManifest.xml中声明:

再在代码中请求获取权限才能进行正常的授权流程。所以Android 6.0并不是废除了在AndroidManifest.xml中声明权限的功能,而是增加了用户授权的步骤,危险权限要请求用户授权才能使用。