Google Drive GET_CONTENT intent read file

khusrav picture khusrav · Jul 27, 2013 · Viewed 12.1k times · Source

I have an app on android that does some file sharing using cloud storages like dropbox. To start sharing I throw android.intent.action.SEND. On the list that is shown I see the Google Drive app (previously installed), so I try sending the file to it - it works ok, the file appears in the Drive list.

Then, on another device I want to read this file. I throw the android.intent.action.GET_CONTENT intent, choose Drive and then don't know how to get to file. I receive an Uri something like this:

content://com.google.android.apps.docs.files/exposed_content/6jn9cnzdJbDywpza%2BlW3aA%3D%3D%0A%3BRV%2FaV94o%2FCcW4HGBYArtwOdHqt%2BrsYO4WmHcs6QWSVwp%2FXogkRAgit7prTnfp00a%0A

which I don't know how to transform to physical file path. How could I get the file contents from this?

I played around the content provider and can get the file name, but not the full path or anything else.

For the dropbox I get the file:// style uri, straight and simple, works well.

Answer

Orkun Kocyigit picture Orkun Kocyigit · Jul 27, 2013

It is sending you uri of content provider which you can use it with ContentResolver,for example such as:

getContentResolver().query(Uri contentUri, String[] projection, String selection, String[] selectionArgs, String sortOrder);

Edit: For getting real path names use the solution provided below

Android: Getting a file URI from a content URI?