在Web服务器配置中,我们通常通过将MIME类型设置为application/octet-stream
来强制下载文件。
我有一个应用程序,它从可以下载所有文件的Web服务器解析目录列表。用户单击文件时的预期操作是提示用户选择下载文件的方法。
对于引用http://webserver/foo.mkv
的URI,ADM
不提供支持下载的URI。相反,提供Chrome或浏览器。但是,如果我选择Chrome,它会加载地址并决定无法呈现地址,然后提供ADM
。
我的问题是,Chrome如何确保ADM
是一款可以处理我的下载意图的应用,以便我可以将其作为合适的应用提供?
这是我的Intent创建代码:
URL downloadUrl = new URL(MainActivity.this.listingUrl, entry.getPath());
Uri downloadUri = Uri.parse(downloadUrl.toString());
Intent downloadIntent = new Intent();
downloadIntent.setAction(Intent.ACTION_MAIN);
downloadIntent.setType("application/octet-stream");
downloadIntent.setData(downloadUri);
startActivity(Intent.createChooser(downloadIntent, "Pick download manager..."));
其中downloadUri
类似于:http://webserver/foo.mkv
。