16
votes

While the Google Drive Android API, an API separate from the Google Drive Rest API, does contain a file picker, the Google Drive Android API is not integrated with all the features of the Google Drive Rest API, such as exporting Google Docs files to a different format. Although there is a Google Drive Rest API file picker available for web applications, I have not found one for Android applications. Does anyone know the best way to create a file picker for the user to choose files from their Google Drive account by using the Google Drive Rest API?

1
did you find the solution for this? Did you try using the Drive REST Api?Capt
@Capt I used the Drive Rest API, but as a result, the user now has to give permission to access files from their account twice.Daniel
I would love to see a good answer for this, now that Google just announced that they are deprecating the Google Drive Android API and forcing everyone to use the Google Drive REST API.shagberg

1 Answers

1
votes

The file picker is implemented as an Intent and allows you develop a native Android user experience with just a couple lines of code. This following code snippet launches the picker and allows the user to select a text file:

// Launch user interface and allow user to select file
IntentSender i = Drive.DriveApi
.newOpenFileActivityBuilder()
.setMimeType(new String[] { “text/plain” })
.build(mGoogleApiClient);
startIntentSenderForResult(i, REQ_CODE_OPEN, null, 0, 0, 0);

The result is provided in the onActivityResult callback as usual.

You may be wondering how the Google Drive Android API relates to the Storage Access Framework.

The Storage Access Framework is a generic client API that works with multiple storage providers, including cloud-based and local file systems. While apps can use files stored on Google Drive using this generic framework, the Google Drive API offers specialized functionality for interacting with files stored on Google Drive — including access to metadata and sharing features. Additionally, as part of Google Play services the Google Drive APIs are supported on devices running Android 2.3 Gingerbread and above.