#StackBounty: #android #google-drive-api #android-download-manager Download Manager with Google Drive URL

Bounty: 100

I’m trying to download a file stored in Google Drive using android DownloadManager.

I get the sign in token from Google like following:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(AppConfig.getInstance().get("google_client_id"))
            .requestProfile()
            .requestEmail()
            .build();

I receive a notification with google drive file url and i pass it to the DownloadManager, passing to it the token:

String cookie = CookieManager.getInstance().getCookie(d.getURL());
            request.addRequestHeader("Cookie",cookie);
            request.addRequestHeader("Authorization", "OAuth " + profile.getToken());
//d is the document object, that contains url, file name, etcc
//Profile is a simple object class that hold the user data taken from sign Google, like token, name, email, etcc

Using a simple Broadcast Receiver to manage the download result (ACTION_DOWNLOAD_COMPLETE).

The download is done successfully, but the file is corrupted.
If i try to open it, the device (and pc) gives me a format error.

(The account that i’m using is enabled to read and dwonload the document form this specific drive storage)

Is this the correct way to download a Google Drive file using DownloadManager? Is it possible to do that?


Get this bounty!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.