Android DownloadManager无法从google drive URI下载或打开内容?
我试图从Google Drive URI下载内容,但未能打开内容,但内容下载到下载文件夹中,文件大小不限。名为URL 2的内容正在成功下载并在受支持的应用程序中打开。请指出我缺少的地方。我是否需要一些特殊的帮助,或者可以管理此代码来实现这一点 如何从Google Drive下载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?
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值传递到请求的标头
它适合我。通过以下方式转换公共驱动器链接:
然后使用转换后的链接通过以下方式转换公共驱动器链接: 然后使用转换后的链接