2016-03-15 159 views
0

我使用此代碼在我的應用程序通過Web瀏覽器(每一個用戶選擇:鉻,海豚或...)下載視頻文件的Android如何強制下載通過Web瀏覽器的文件

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); 
     } 
    }); 

它適用於我的手機(瀏覽器提示下載),但是當我在另一部手機上測試它時,它會通過自動選擇的瀏覽器播放(顯示)視頻。

現在,我的問題:

  • 我怎麼能強制下載文件而不是通過Web瀏覽器視圖文件
  • 我想要另一個動作,如Intent.ACTION_Download而不是Intent.ACTION_VIEW
  • 我想阻止使用複雜的方法,如通過下載類下載文件。有沒有可能通過詭計來實現這一點?

編輯

當我按下按鈕,會發生什麼:

例如我的手機上,當我按下按鈕,打開海豚瀏覽器,海豚提示我下載視頻文件,但在另一部手機上,當我按下按鈕打開瀏覽器並播放視頻。

+1

當涉及到意圖時,Android不區分URL發生了什麼,它只是檢測您可以執行隱式意圖請求的應用程序。你可以簡單地通過代碼從URL下載文件,如果你想強制它,不需要甚至提示用戶有意圖。 – zgc7009

回答

1

如何強制下載文件,而不是通過網絡瀏覽器查看文件?

並不要求任何瀏覽器根據ACTION_VIEWIntent下載文件。 Android上有很多瀏覽器,都是由用戶預先安裝和安裝的。

我想要另一個動作像Intent.ACTION_Download而不是Intent.ACTION_VIEW。

沒有要求任何瀏覽器提供強制下載文件的任何特定操作。

+0

@CommonsWarem,但我該如何下載視頻文件?我在我的應用程序的按鈕上寫下載,然後我的代碼必須以安全的方式下載用戶的文件。我在問題中提到的代碼有問題(有時會播放視頻)。請給我一個絕對的解決方案,下載Android下載文件夾中的視頻文件。 – RAM

+0

@RAM:「但我如何下載視頻文件?」 - 使用'DownloadManager','HttpURLConnection'或第三方HTTP客戶端庫(例如OkHttp,Volley)。 – CommonsWare

+0

@CommonsWarem,我想試試[這個代碼](https://github.com/commonsguy/cw-android/blob/master/Internet/Download/src/com/commonsware/android/download/DownloadDemo.java)你。可以嗎? – RAM

相關問題