赞
踩
在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"/> |
- if ((ContextCompat.checkSelfPermission(this, Manifest.permission.MANAGE_EXTERNAL_STORAGE)
- != PackageManager.PERMISSION_GRANTED) ) {
- //如果没有权限,获取权限{
- Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
- intent.setData(Uri.parse("package:" + getPackageName()));
- startActivity(intent);
- }
-
hasManageExternalStoragePermission
方法用于检查应用是否已经获得了MANAGE_EXTERNAL_STORAGE
权限。如果没有,就创建一个Intent
来启动系统设置页面,让用户可以授予这个权限。
处理权限授予结果:
用户可以在系统设置中授予或拒绝这个权限。你的应用无法直接检测到这个结果,但你可以监听onActivityResult
回调来检查用户是否返回到了你的应用。然而,由于这是一个特殊权限,你无法直接知道用户是否授予了权限。
翻译
搜索
复制
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。