如何在Android中打开保存文件对话框,为下载管理器选择目标?

如何在Android中打开保存文件对话框,为下载管理器选择目标?,android,Android,我正在开发一个Android应用程序的功能,它使用Android下载管理器从本地服务器下载一个文件。到目前为止,我使用 request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,filename); 现在我想让用户选择包括文件名在内的目标。因此,我使用动作\u创建\u文档意图: 但是,当我现在在下载管理器中使用生成的路径时,它不会在创建的文件中写入数据,而是在文件创建对话框创建filename.jpeg时

我正在开发一个Android应用程序的功能,它使用Android下载管理器从本地服务器下载一个文件。到目前为止,我使用

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,filename);
现在我想让用户选择包括文件名在内的目标。因此,我使用动作\u创建\u文档意图:

但是,当我现在在下载管理器中使用生成的路径时,它不会在创建的文件中写入数据,而是在文件创建对话框创建filename.jpeg时创建一个名为例如filename-1.jpeg的新文件。 我希望下载管理器写入先前创建的文件,或者使用另一个对话框为下载管理器选择目标,但不通过该对话框创建文件


有人知道一种简单的归档方法吗?

您是否尝试过先删除该文件?谢谢你的提示!我以前已经找到了这篇文章,也试过了,但不知什么原因,它不起作用。。。我不知道为什么,但现在它工作得很好。再次感谢你!我必须补充一点,这个解决方案仍然不够完美。因为我喜欢询问用户是否覆盖现有文件。但是,如果输入的文件名不存在新文件,则“创建文档”对话框将直接创建新文件。因此,当我在向用户请求覆盖权限之前检查文件是否存在时,Fileexists始终为true。作为一种解决方法,我现在检查文件大小是否不是0。如果有人知道有一个……文件存在,我仍然希望有一个干净的解决方案。如何为DocumentFile实例使用File类?我正在创建一个File对象。我从内容Uri中提取路径并构建一个文件对象,最终java.io.File f=new java.io.Filepath;
void pickTargetFile() {
    Intent intent = new Intent()
            .setAction(Intent.ACTION_CREATE_DOCUMENT)
            .setType("image/jpeg");
    startActivityForResult(Intent.createChooser(intent, "Select a target to save the file"), SAVE_FILE_CODE);
}