高版本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:} 夏无雪 发表于 2022-10-12 11:16
不必纠结这个,查看权限里面都是一样的。只有一个解释:MT管理器请求权限的弹窗是自定义的,跟系统的弹窗不 ...
emmm,权限请求的弹窗是不能自定义的。我自己搞明白了,mt和np的targetsdk版本一个26一个28,是这里的问题。XXPermissions框架给的demo是33,我自己的是32,不得不说Android版本适配真的坑 善用Github搜索啊android-11-存储权限适配 同意楼上的,csdn也有类似的东西 本帖最后由 不爱everyone 于 2022-10-12 09:01 编辑
小骚 发表于 2022-10-11 20:48
善用Github搜索啊android-11-存储权限适配
大佬不行啊,和我自己写的没啥区别,实现不了mt管理器的那种效果 shuaibi_chen 发表于 2022-10-11 21:32
同意楼上的,csdn也有类似的东西
大佬不行啊,和我自己写的没啥区别,实现不了mt管理器的那种效果 小骚 发表于 2022-10-11 20:48
善用Github搜索啊android-11-存储权限适配
这个框架申请出来的也是不带文件 不必纠结这个,查看权限里面都是一样的。只有一个解释:MT管理器请求权限的弹窗是自定义的,跟系统的弹窗不太一样;www 不爱everyone 发表于 2022-10-12 09:04
这个框架申请出来的也是不带文件
重要的不是框架,而是如何适配,适配了就行,为何要纠结一些没必要的东西 小骚 发表于 2022-10-12 14:41
重要的不是框架,而是如何适配,适配了就行,为何要纠结一些没必要的东西
这个很有必要,我后来发现是target版本问题,用不用框架都得申请MANAGE_EXTERNAL_STORAGE,要不就无法随意写文件,但是targetSDK版本低就可以正常实现
页:
[1]
2