Android系统6.0之后,加入了运行时权限,不仅要在AndroidManifest.xml清单文件中加入权限。
同时也要在java代码中动态申请权限。当然并不是所有的权限都要动态申请。只有一些危险权限。才需要我们去动态申请。
比如我们访问Android 手机的SD卡就要申请动态权限。
首先在清单文件中加入权限。
<!--允许应用程序写入外部存储 又可以理解为:读取存储卡中的内容 修改或删除存储卡中的内容--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!--允许应用程序从外部存储读取 又可以理解为:仅读取存储卡中的内容--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
之后在java代码中动态申请权限:
//PackageManager.PERMISSION_GRANTED表示程序已有该权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}, 1); }
其中Android 中有9组24个危险权限,分别为:
想要查看Android 系统中完整的权限列表,可以访问Android官网 权限API参考文档