我有一款针对SDK>;=33的Android应用程序.目前它有以下流程:
- 用户使用
registerForActivityResult(ActivityResultContracts.GetContent()
和URIaudio/*
输入音频文件 - 我的应用将此文件复制到应用的
getExternalCacheDir
,以便我的NDK函数可以定位它 - 删除我的NDK函数,它从应用本地存储读取复制的文件,进行一些处理,并将输出写入应用的
getExternalFilesDir(Environment.DIRECTORY_MUSIC)
路径,
在这一点上,我有了一个输出文件的列表,我准备将这些文件作为处理结果返回给用户:
com.my.app Out file: /storage/emulated/0/Android/data/com.my.app/files/Music/processed_file_0.wav
com.my.app Out file: /storage/emulated/0/Android/data/com.my.app/files/Music/processed_file_1.wav
我真正想要的是启动Android内置的文件浏览器到父目录/storage/emulated/0/Android/data/com.my.app/files/Music/
,按钮如下:
<Browse processed outputs>
我希望有一个自然的/内置的文件浏览器可以轻松地让用户做任何他们想做的事情,如共享,保存,复制,或打开/收听/播放文件—这些都不是我想在我的应用程序中重新实现的功能,如果有 Select 的话.
但是,我认为我的理解是有缺陷的,我们不允许用意图系统做这样的事情.什么是好的方式让用户对我的应用输出的音频文件做任何他们想做的事情,或者 bootstrap 他们浏览这些文件?
我try 将文件保存到媒体store ,但工作正常--我可以看到Audio/unknown/App Name/
英寸的文件.然而,我还是找不到一种方法来启动具有EXTRA_INITIAL_URI
的文件浏览器来指向该目录.
我该怎么办?