当前位置:   article > 正文

android11以上SD卡存储权限适配申请问题

android11以上SD卡存储权限适配申请问题

Android 11(API级别30)及以上版本中,应用需要获得MANAGE_EXTERNAL_STORAGE权限。这个权限允许应用访问设备上的所有文件,而不仅仅是它自己的文件。然而,由于这个权限对用户的隐私有潜在的影响,因此Google对其使用进行了严格的限制,在申请Manifest.permission.MANAGE_EXTERNAL_STORAGE权限的时候默认是拒绝且不再提醒的

推荐的做法是使用MediaStore API或存储访问框架(SAF)来访问共享存储空间上的文件,而不是请求MANAGE_EXTERNAL_STORAGE权限。然而,如果你的应用确实需要这个权限,你可以通过以下步骤来请求它:

AndroidManifest.xml中声明权限
首先,你需要在应用的AndroidManifest.xml文件中声明MANAGE_EXTERNAL_STORAGE权限。

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
  1. if ((ContextCompat.checkSelfPermission(this, Manifest.permission.MANAGE_EXTERNAL_STORAGE)
  2. != PackageManager.PERMISSION_GRANTED) ) {
  3. //如果没有权限,获取权限{
  4. Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
  5. intent.setData(Uri.parse("package:" + getPackageName()));
  6. startActivity(intent);
  7. }
  1. hasManageExternalStoragePermission方法用于检查应用是否已经获得了MANAGE_EXTERNAL_STORAGE权限。如果没有,就创建一个Intent来启动系统设置页面,让用户可以授予这个权限。

  2. 处理权限授予结果
    用户可以在系统设置中授予或拒绝这个权限。你的应用无法直接检测到这个结果,但你可以监听onActivityResult回调来检查用户是否返回到了你的应用。然而,由于这是一个特殊权限,你无法直接知道用户是否授予了权限。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/111241
推荐阅读
相关标签
  

闽ICP备14008679号