You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12下无法创建OPEN_DOCUMENT_TREE活动问题求助

问题原因及解决方案

核心原因

你给ACTION_OPEN_DOCUMENT_TREE意图添加了Intent.CATEGORY_OPENABLE类别,这是错误操作。CATEGORY_OPENABLE是为选择单个文件的意图(比如ACTION_OPEN_DOCUMENT)设计的,而ACTION_OPEN_DOCUMENT_TREE是用于选择目录的系统意图,两者不兼容,导致系统找不到能同时处理该意图和类别的Activity,进而抛出ActivityNotFoundException。

修复步骤

直接移除intent.addCategory(Intent.CATEGORY_OPENABLE);这行代码即可。修改后的getProfilesFolder()方法如下:

private void getProfilesFolder() {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
    startActivityForResult(intent, requestCode);
}

额外注意事项

  • API32及以上版本中,使用ACTION_OPEN_DOCUMENT_TREE无需额外申请读写外部存储权限(通过SAF框架操作),但如果应用需要兼容更低版本,仍需处理对应权限逻辑。
  • 当前初始化ProfileFolderUri的代码Uri.parse("content://com.android.externalstorage.documents/tree/")是无效Uri,后续替换为从偏好设置读取的有效Uri时,需确保格式正确。

内容的提问来源于stack exchange,提问作者Jan Petersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:27:16