Android 11+申请MANAGE_EXTERNAL_STORAGE权限后仍无法读写公共存储目录的问题求助
Android 11+申请MANAGE_EXTERNAL_STORAGE权限后仍无法读写公共存储目录的问题求助
各位大佬好,我这个问题卡了快一周了,实在没头绪来求助大家!
背景是我正在把一个C++应用移植到Android NDK,要求必须把数据存在公共存储目录里(就是storage/emulated/0/COMPANY_NAME/下面的自定义子文件夹,比如Assets、Logs这些),而且其他应用也得能访问这些文件。
我知道Android 11+收紧了存储权限,所以已经做了这些操作:
- 在Manifest里声明了
MANAGE_EXTERNAL_STORAGE权限; - 通过JNI调用Java层处理权限逻辑:先检查
Environment.isExternalStorageManager(),如果没获取到权限,就跳转到系统设置页申请:
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) intent.data = "package:$packageName".toUri() startActivityForResult(intent, REQUEST_MANAGE_EXTERNAL_STORAGE)
现在我已经确认权限申请成功了——不仅在设置弹窗里点了允许,代码里Environment.isExternalStorageManager()也返回true了,但不管是创建文件夹还是读写文件,依然会报权限拒绝的错误。
有没有大佬知道可能哪里出问题了?或者能给我一个Android 11+下能正常实现全公共存储读写的完整代码示例参考下?




