DownloadManager не может загрузить или открыть контент из URI диска Google?

Я пытаюсь загрузить содержимое с URI Диска Google, но не могу открыть содержимое, но содержимое загружается в папку загрузки с файлом любого размера. Пока контент с именем URL 2 загружается успешно и также открывается в поддерживаемом приложении. Укажите, пожалуйста, где мне не хватает. Нужны ли мне какие-то особые средства или этим кодом можно управлять.

Как я могу скачать с Google Диска?

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

person Akash    schedule 25.01.2016    source источник


Ответы (2)


Попытайся:

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

long download_id = downloadManager.enqueue(request);

Я думаю, вам нужна информация для аутентификации (идентификатор сеанса и т. Д.) Вашей учетной записи Google, которая управляется файлом cookie.

Диспетчер загрузок не вставляет cookie вашего WebView в свой запрос, поэтому вам необходимо вручную передать значение cookie в заголовок запроса.

Меня устраивает.

person dora    schedule 20.04.2016

Преобразуйте ссылку на общественный диск, выполнив следующие действия: нажмите здесь

затем используйте преобразованную ссылку

person LEGEND MORTAL    schedule 16.12.2020