Android如何通过网络浏览器强制下载文件

标签 android android-intent

我在我的应用程序中使用此代码通过网络浏览器下载视频文件(用户选择的每个浏览器:chrome、dolphin 或...)

   View BtnDownload = (View)rootView.findViewById(R.id.BtnDownload);
   BtnDownload.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {
           Intent intent = new Intent();
           intent.setAction(Intent.ACTION_VIEW);
           intent.addCategory(Intent.CATEGORY_BROWSABLE);
           intent.setData(url);
           startActivity(intent);
       }
   });

它在我的手机上运行良好(浏览器提示下载),但当我在另一部手机上测试它时,它会通过自动选择的浏览器播放(显示)视频。

现在,我的问题:

  • 我如何强制下载文件而不是通过网络浏览器查看文件
  • 我想要另一个操作,例如 Intent.ACTION_Download 而不是 Intent.ACTION_VIEW
  • 我想避免使用复杂的方法,例如通过下载器类下载文件。有可能通过技巧实现吗?

编辑

当我按下按钮时发生了什么:

例如,在我的手机上,当我按下按钮时,它会打开海豚浏览器,海豚会提示我下载视频文件,但在另一部手机上,当我按下按钮时,它会打开浏览器并开始播放视频。

最佳答案

How can i force download file instead view file by web browser?

不要求任何浏览器根据 ACTION_VIEW Intent 下载文件。 Android 有许多浏览器,用户预装和安装了这些浏览器。

I want another action like Intent.ACTION_Download instead of Intent.ACTION_VIEW.

不要求任何浏览器提供任何强制下载文件的特定操作。

关于Android如何通过网络浏览器强制下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36017193/

相关文章:

android - WebView 不工作,在浏览器中从外部启动 url。在应用程序内显示网页

android - 禁用未在 Activity 中指定的选项菜单

Android,用户何时安装应用程序?

android - 具有冲突库版本的 Firebase 库无法运行我的应用程序

Android 应用程序重新启动 Activity - 正在进行的网络 IO 会发生什么情况?

java - 如何在应用程序中的 Activity 之间添加几秒钟的延迟?

具有 Intent 的 Android onActivityResult()

android - 使用 FirebaseMessagingService 类时出现错误 "return type int is not compatible with Intent"

jquery - 动态包含 cordova.js 文件在 Windows Phone 7 中不起作用?

javascript - (Ionic/Cordova) getUserMedia 的 PermissionDeniedError