Android 在不知道文件名的情况下将文件下载到外部公共存储

Android 在不知道文件名的情况下将文件下载到外部公共存储,android,download,download-manager,Android,Download,Download Manager,我的HTTP服务器允许下载带有“动态”url的文件:例如,这将为我提供我的歌曲.mp3。 文件名在内容处置标题中指示。 使用Android DownloadManager下载此类文件工作正常,但我希望能够控制文件保存到的位置。 通常的做法是打电话 DownloadManager.Request r = new DownloadManager.Request(uri); r.setDestinationNexternalPublicDir(字符串目录类型,字符串子路径) 不幸的是,这需要预先知道

我的HTTP服务器允许下载带有“动态”url的文件:例如,这将为我提供我的歌曲.mp3。 文件名在内容处置标题中指示。 使用Android DownloadManager下载此类文件工作正常,但我希望能够控制文件保存到的位置。 通常的做法是打电话

DownloadManager.Request r = new DownloadManager.Request(uri);
r.setDestinationNexternalPublicDir(字符串目录类型,字符串子路径)


不幸的是,这需要预先知道文件名,我不知道。我尝试调用上面的函数,子路径为null,但它不起作用…

尝试使用
HttpClient
UrlHttpConnection
HEAD
请求。。。它应该返回所有没有正文的标题。。。然后分析
内容类型
标题(文件名)。。。。或者只是用来生成一些“随机”的名字…@Selvin:这绝对是个好主意,但我希望有一些不那么粗糙的东西:)