您的当前位置:首页正文

Android11文件管理权限申请详细介绍

2024-09-03 来源:华佗小知识
Android11⽂件管理权限申请详细介绍

⽬录

Android 11⽂件管理权限申请Android 11和低版本的存储权限结合⼯具类封装

Android 11申请管理所有⽂件权限的BugAndroid 11⽂件管理权限申请

Android 11⽂件管理权限申请,为什么需要这个权限,因为在Android 11后,⽆法直接在SDcard根⽬录写⽂件,Android 11之后要使⽤分区存储,但是分区存储使⽤起来很⿇烦,所以可以申请⽂件管理权限,这样就可以随意读写SDcard了,写到根⽬录也没问题。清单⽂件声明如下:

android:requestLegacyExternalStorage=\"true\"> 。。。

这⾥除了申请MANAGE_EXTERNAL_STORAGE权限之外,同时也是要申请WRITE_EXTERNAL_STORAGE权限的,因为在低于Android11的版本就需要使⽤WRITE_EXTERNAL_STORAGE权限,且需要在application节点添

加android:requestLegacyExternalStorage=\"true\",这个属性⽤于Android10版本可以免去分区存储。在Android11上,申请了MANAGE_EXTERNAL_STORAGE权限之后就不⽤申请WRITE_EXTERNAL_STORAGE权限了,因为拥

有MANAGE_EXTERNAL_STORAGE权限应该就能任意读写SDCard了。根据实验,申请了MANAGE_EXTERNAL_STORAGE权限之后,再申请WRITE_EXTERNAL_STORAGE也是会弹出权限申请对话框的,所以,在Android11上还有没有必要申请WRITE_EXTERNAL_STORAGE权限,值得思考,但我就懒得去实验了。

class MainActivity : AppCompatActivity() {

private lateinit var launcher: ActivityResultLauncher override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)

launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { Log.i(\"ABCD\权限申请结果:${it.resultCode == Activity.RESULT_OK}\") checkAndroid11FilePermission(this) }

findViewById

热门图文