You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android 11+申请MANAGE_EXTERNAL_STORAGE权限后仍无法读写公共存储目录的问题求助

Android 11+申请MANAGE_EXTERNAL_STORAGE权限后仍无法读写公共存储目录的问题求助

各位大佬好,我这个问题卡了快一周了,实在没头绪来求助大家!

背景是我正在把一个C++应用移植到Android NDK,要求必须把数据存在公共存储目录里(就是storage/emulated/0/COMPANY_NAME/下面的自定义子文件夹,比如Assets、Logs这些),而且其他应用也得能访问这些文件。

我知道Android 11+收紧了存储权限,所以已经做了这些操作:

  1. 在Manifest里声明了MANAGE_EXTERNAL_STORAGE权限;
  2. 通过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+下能正常实现全公共存储读写的完整代码示例参考下?

火山引擎 最新活动