不爱everyone 发表于 2022-10-11 19:52

高版本Android申请文件权限问题

本帖最后由 不爱everyone 于 2022-10-12 09:03 编辑

在安卓SDK30以上 存储权限申请
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
public void apply(View view) {
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
                  ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
      requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
    }
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
      if (!Environment.isExternalStorageManager()) {
            Intent intent = new Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
            startActivity(intent);
      }
    }
}
然后申请出来的权限只有照片和媒体(不申请MANAGE_EXTERNAL_STORAGE的情况下)

而像MT这样申请出的就直接可以进行访问文件

感谢好心的大佬解答下这个问题,这种是怎么调用出来的?不胜感激
{:1_893:}

不爱everyone 发表于 2022-10-12 11:59

夏无雪 发表于 2022-10-12 11:16
不必纠结这个,查看权限里面都是一样的。只有一个解释:MT管理器请求权限的弹窗是自定义的,跟系统的弹窗不 ...

emmm,权限请求的弹窗是不能自定义的。我自己搞明白了,mt和np的targetsdk版本一个26一个28,是这里的问题。XXPermissions框架给的demo是33,我自己的是32,不得不说Android版本适配真的坑

小骚 发表于 2022-10-11 20:48

善用Github搜索啊android-11-存储权限适配

shuaibi_chen 发表于 2022-10-11 21:32

同意楼上的,csdn也有类似的东西

不爱everyone 发表于 2022-10-11 22:21

本帖最后由 不爱everyone 于 2022-10-12 09:01 编辑

小骚 发表于 2022-10-11 20:48
善用Github搜索啊android-11-存储权限适配
大佬不行啊,和我自己写的没啥区别,实现不了mt管理器的那种效果

不爱everyone 发表于 2022-10-12 09:02

shuaibi_chen 发表于 2022-10-11 21:32
同意楼上的,csdn也有类似的东西

大佬不行啊,和我自己写的没啥区别,实现不了mt管理器的那种效果

不爱everyone 发表于 2022-10-12 09:04

小骚 发表于 2022-10-11 20:48
善用Github搜索啊android-11-存储权限适配

这个框架申请出来的也是不带文件

夏无雪 发表于 2022-10-12 11:16

不必纠结这个,查看权限里面都是一样的。只有一个解释:MT管理器请求权限的弹窗是自定义的,跟系统的弹窗不太一样;www

小骚 发表于 2022-10-12 14:41

不爱everyone 发表于 2022-10-12 09:04
这个框架申请出来的也是不带文件

重要的不是框架,而是如何适配,适配了就行,为何要纠结一些没必要的东西

不爱everyone 发表于 2022-10-12 19:30

小骚 发表于 2022-10-12 14:41
重要的不是框架,而是如何适配,适配了就行,为何要纠结一些没必要的东西

这个很有必要,我后来发现是target版本问题,用不用框架都得申请MANAGE_EXTERNAL_STORAGE,要不就无法随意写文件,但是targetSDK版本低就可以正常实现
页: [1] 2
查看完整版本: 高版本Android申请文件权限问题