DEV Community

Sadhan Sarker
Sadhan Sarker

Posted on

Google Drive API with Android

There are many ways to upload images and files. Also, there are many places from which to uploads files: Dropbox, local storage on the device, Google Drive and other services. In this tutorial, we are going to take a look at how to upload and create a file in Google Drive. To do so we need to Google Drive SDK and Google Authentication Base on Google Drive Rest API we are going to do that.

Okay, it's enough to talk about it 😎 Let's get into it,

Getting Started

Start a new Android Studio project from the startup screen or New Project then select Empty Activity' from theChoose Project` box.

Enter the name drive-rest-app company domain and a project location. Make sure to Choose Language Java.

Alt Text

And Click Finish .

Registering for Google Drive

As we discuss we need to Google Drive SDK, So in order to use it, we need to enable that API. Okay don't worry we will move forward step by step

  • Go to Google Console.
  • Sign up for a developer account if We don't have or then sign in.
  • Create a project Or Select and click continue from below,

Alt Text

  • After creating a project we have Dashboard like below,

Alt Text

  • Now, Select Library on the left-hand side to go to the Search screen
  • Type “Google Drive” and select Google Drive API.
  • Select Enable. Then It looks like below,

Alt Text

  • Back to Dashboard, from Dashboard left-hand side go to Credentials. Create Credential by selecting the OAuth client ID like below

Alt Text

Tt navigates to the Create OAuth client ID page. Select our Application Type Android.

Alt Text

  • Now we need your SHA-1 Signing-certificate fingerprint key. Do so follow below steps
  • Copy the keytool text (press the Copy icon) and paste it into a terminal.
  • Change the path-to-debug-or-production-keystore to your default debug keystore location:
  • On Mac or Linux, ~/.android/debug.keystore .
  • On Windows, %USERPROFILE%/.android/debug.keystore .
  • After you execute the command, you will be prompted to enter the keystore password. The password for the debug keystore is blank by default, so you can just press Return or Enter.

Notes: If throwing error to generate singing key then it might be keystore not found.

I used an alternative command for my machine MAC OS.

bash
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

If everything works correctly, you should see something like this:

  • Copy the SHA1 value from the terminal into the text field and press Create. The Client ID dialog will appear. Press OK.

Alt Text

  • Finally, enter a name and the package name that we used to create our app. Although the hint refers to the package name in AndroidManifest.xml, it has to match the applicationId in build.gradle instead — otherwise, the login flow will fail.
  • We don't need to complete the form that appears, it's optional so press Save and move on.

Optional, Now, In the Credentials page. Authorization on Android uses the SHA1 fingerprint and package name to identify your app, so you don’t have to download any JSON file or copy any API key or secret to our project.

It about lots man, Don't worry! Now, we are in the fun part 😎.

Let's Back to the coding part,

Sorry! Dev.to can't render source files properly, the rest of the part will cover below.

Discussion (4)

Collapse
sanyika05 profile image
sanyika05

Hello Sadhan,

Thanks for this post.
Actually I copied the code that you provided and ran into an issue.
After selecting the gmail account with which I would like to log in the app starts loading but never processes further...

In the logcat:
-I got this messages: E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar is not exist!
-E/Minikin: Could not get cmap table size!

I am just learning Java but I do want/need to learn Google Drive API for my Android app.
Could you pls help me out, if you have any thoughts on this issue?
Kind regards
Sandor

Collapse
mesadhan profile image
Sadhan Sarker Author

Sorry for the late response. I'm a little bit overwhelming right now. So you can check out this link below,

stackoverflow.com/questions/536854...

I think it's happening because of your android studio version, or API version, or Gradle check that and let me know.

Collapse
abharna profile image
abharna

for this github link i have error when i use the filepicker , how to get the fileid while we using filepicker in android studio

Collapse
mesadhan profile image
Sadhan Sarker Author

Please it's not clear to me. What do you talking about? But if possible explain it briefly.
Add some screen short if possible. I think you are in a trouble to import that project. Please check your android studio version and API version.