android - 如何使用 ACTION_OPEN_DOCUMENT_TREE 提示内容管理器选择器直接在可选位置打开
问题描述
当您用于ACTION_OPEN_DOCUMENT_TREE
选择在 Android 11 中存储文件的路径的权限时,默认情况下默认的 Android 内容管理器会在最近使用的路径上打开,并且由于某种原因, “使用此文件夹”按钮甚至根本不会出现,即使此路径是可访问的路径,除非用户手动通过路径移动到合适的位置(或者如果这是可选位置,则返回默认打开的路径通过目录移动)。
例如,假设用户使用的最新路径是Documents。当我要求用户选择允许应用程序保存文件的路径时,使用
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
这是出现的:
如您所见,没有“使用此文件夹”蓝色按钮。
现在,如果用户从这里选择超级文件夹路径并在Documents中再次输入,这就是他所看到的:
现在“使用此文件夹”按钮可用。
这是完全没有意义的,而且对用户体验来说是可怕的,许多用户最终肯定会在卸载应用程序时感到烦恼和困惑。
难道我做错了什么?是否可以通过选择器打开时可用的“使用此文件夹”按钮向意图传递一些提示,以便ACTION_OPEN_DOCUMENT_TREE
直接在所有 Android 设备存储(例如Documents)中可用的特定路径中打开内容管理器视图?
解决方案
推荐阅读
- java - 来自 Java 的具有多级参数的 NuoDB 存储过程调用
- matlab - 如何使用 ode23s 在 MATLAB 中使用 FOR 循环编写程序来调用微分方程 50 次?
- javascript - React Native Firebase 如何从具有特定用户的表数组中获取数据
- stored-procedures - 存储过程中的碧玉和时间戳转换
- microsoft-graph-api - 任一 SCP 角色声明都需要存在于令牌中
- coq - 我可以引入健全的构造函数等价吗?
- angular - Angular中(更改)事件的参数接口
- image - Flutter web Image.network 旋转图像
- svelte - Svelte:如何将数据从 javascript 文件传回 svelte 组件
- c# - 获取 X509Certificate 的私钥时,ASP.NET 网站有时会挂起或减慢请求