Delete / trash file from android using android.gms.drive

前端 未结 2 1953
梦毁少年i
梦毁少年i 2021-01-24 01:06

I need to delete files from Google Drive using com.google.android.gms.drive. From what I\'ve read here and across the web there is no support for file deletion in t

2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-01-24 01:40

    UPDATE (May 2015)
    Addition of trash / delete functionality to GDAA 7.5 renders the answer below irrelevant.

    ORIGINAL ANSWER:

    The sequence is:

    1. Get DriveId from GDAA (file or folder)
    2. Get ResourceId from DriveId.getResourceId() (may be null if file/folder is not committed yet)
    3. use ResourceId (rsid) in this REST call:
    com.google.api.services.drive.Drive.files().trash(rsid).execute()
    com.google.api.services.drive.Drive.files().delete(rsid).execute()
    
    1. finally realize that you can't do it since you'll see the file in GDAA long after it has been deleted / trashed. You can even write in it, create files in that folder you've just trashed, ... That's why people introduced the "clear contents and forget" strategy nobody likes.

    Needless to say, this applies to any delete / trash action you may perform outside of GDAA universe (manually trash/delete using web interface etc...)

    So, to wrap it up. 'pinoyyid' is right, each of the APIs is different and the GDAA can not replace the REST (yet). You'll quickly realize it when you try to work a little deeper, like getting thumbnail url, fighting latency issues etc... On the other hand GDAA has advantages, since it can work off-line without your app handling it. When using REST, your app should do all the Drive calls in some kind of sync service to separate your UI actions from network issues (delays, off-line, ...). GDAA handles this for you, but on it's own timing terms. And with no delete functionality.

    I put a piece of code on github, that has both these API's used side-by-side and you may use it to play with different scenarios before committing yourself to one of them.

    It would be nice to hear clearly from Google what the final strategy is, i.e.

    • Is GDAA going to replace REST one day, after all the REST functionality is in?
    • Will they retire the REST afterwards?

    Good Luck

提交回复
热议问题