Android DownloadManager无法从google drive URI下载或打开内容?

Android DownloadManager无法从google drive URI下载或打开内容?,android,android-download-manager,Android,Android Download Manager,我试图从Google Drive URI下载内容,但未能打开内容,但内容下载到下载文件夹中,文件大小不限。名为URL 2的内容正在成功下载并在受支持的应用程序中打开。请指出我缺少的地方。我是否需要一些特殊的帮助,或者可以管理此代码来实现这一点 如何从Google Drive下载 public class MainActivity extends Activity { // URL 1 String Download_path = "https://drive.google.com/open?

我试图从Google Drive URI下载内容,但未能打开内容,但内容下载到下载文件夹中,文件大小不限。名为URL 2的内容正在成功下载并在受支持的应用程序中打开。请指出我缺少的地方。我是否需要一些特殊的帮助,或者可以管理此代码来实现这一点

如何从Google Drive下载

public class MainActivity extends Activity {

// URL 1
 String Download_path = "https://drive.google.com/open?id=1bBd6Q4YyOMdYDV_v3boyYlrcecoaDXwOZw";
 // URL 2
 //String Download_path = "http://www.vogella.de/img/lars/LarsVogelArticle7.png";

 String Download_ID = "DOWNLOAD_ID";

 SharedPreferences preferenceManager;
 DownloadManager downloadManager;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       preferenceManager = PreferenceManager.getDefaultSharedPreferences(this);
       downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);

       Button btnDownload = (Button)findViewById(R.id.download);
       btnDownload.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Uri Download_Uri = Uri.parse(Download_path);
    DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
      request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI
              | DownloadManager.Request.NETWORK_MOBILE)
               .setAllowedOverRoaming(false)
               .setTitle("Demo")
               .setDescription("Something useful. No, really.")
               .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "test.JPG")
              .setMimeType("application/.jpg")
                .allowScanningByMediaScanner();

       //.setDestinationInExternalPublicDir("/mnt/sdcard/Myfolder", "file_name.extension");

    long download_id = downloadManager.enqueue(request);

    //Save the download id
    Editor PrefEdit = preferenceManager.edit();
    PrefEdit.putLong(Download_ID, download_id);
    PrefEdit.commit();
   }});
   }
试试看:

String cookie = CookieManager.getInstance().getCookie(Download_path); 
request.addRequestHeader("Cookie", cookie);

long download_id = downloadManager.enqueue(request);
我想你需要谷歌账户的身份验证信息(会话id等),它由cookie管理

下载管理器不会将WebView的cookie插入其请求,因此您需要手动将cookie值传递到请求的标头

它适合我。

试试看:

String cookie = CookieManager.getInstance().getCookie(Download_path); 
request.addRequestHeader("Cookie", cookie);

long download_id = downloadManager.enqueue(request);
我想你需要谷歌账户的身份验证信息(会话id等),它由cookie管理

下载管理器不会将WebView的cookie插入其请求,因此您需要手动将cookie值传递到请求的标头


它适合我。

通过以下方式转换公共驱动器链接:


然后使用转换后的链接

通过以下方式转换公共驱动器链接:

然后使用转换后的链接