Удалить / удалить файл из Android с помощью android.gms.drive
Мне нужно удалить файлы с Google Диска, используя com.google.android.gms.drive
, Из того, что я читал здесь и в Интернете, нет никакой поддержки удаления файлов в "новом API". Это (все еще) правильно? Я имею в виду, что API больше не нов...
Я также читал о стратегии "очистить содержание и забыть", но я бы не хотел следовать этому подходу.
Часть 2 вопроса: учитывая, что все еще невозможно удалить файлы через API, упомянутый выше; Есть ли простой способ объединить REST API с кодом, который я уже написал? Что-то вроде
- получить токен от GoogleApiClient
- запустить запрос на УДАЛЕНИЕ с токеном и идентификатором файла
- ???
- прибыль
изменить: новые сервисы Google Play (версия 7.0.0 / март 2015) наконец-то trash()
метод. См. https://developer.android.com/reference/com/google/android/gms/drive/DriveResource.html для получения дополнительной информации.,
edit2: видимо, вы не можете использовать trash()
для файлов из папки приложения: Cannot trash App Folder or files inside the App Folder.
: ((
edit3: с 28 мая теперь возможно фактически удалить файлы.
2 ответа
Удаление поддерживается в Google Drive Android API, как и в сервисах Google Play 7.5, с использованием метода DriveResource.delete().
Удаление является постоянным и рекомендуется только для содержимого папки приложения, где корзина недоступна.
ОБНОВЛЕНИЕ (май 2015)
Добавление функциональности корзины / удаления в GDAA 7.5 делает ответ ниже неактуальным.
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Последовательность:
- Получить DriveId из GDAA (файл или папка)
- Получить ResourceId из DriveId.getResourceId() (может быть нулевым, если файл / папка еще не зафиксирован)
- используйте ResourceId (rsid) в этом вызове REST:
com.google.api.services.drive.Drive.files().trash(rsid).execute() com.google.api.services.drive.Drive.files().delete(rsid).execute()
- наконец, осознайте, что вы не можете сделать это, так как вы увидите файл в GDAA еще долго после того, как он был удален / удален Вы даже можете писать в нем, создавать файлы в той папке, которую вы только что удалили,... Вот почему люди вводят стратегию "очистить содержимое и забыть", которая никому не нравится.
Нет необходимости говорить, что это относится к любому действию удаления / удаления мусора, которое вы можете выполнять вне юниверса GDAA (удаление / удаление вручную с помощью веб-интерфейса и т. Д.)
Итак, заверните это. 'pinoyyid' прав, каждый из API отличается, и GDAA не может заменить REST (пока). Вы быстро поймете это, когда попытаетесь работать немного глубже, например, получить URL-адрес миниатюр, бороться с задержками и т. Д. С другой стороны, у GDAA есть преимущества, поскольку он может работать в автономном режиме без обработки приложением. При использовании REST ваше приложение должно выполнять все вызовы Drive в какой-либо службе синхронизации, чтобы отделить ваши действия пользовательского интерфейса от сетевых проблем (задержки, отключение, ...). GDAA обрабатывает это для вас, но на собственных временных условиях. И без функциональности удаления.
Я поместил фрагмент кода на github, в котором оба этих API используются бок о бок, и вы можете использовать его, чтобы поиграть с разными сценариями, прежде чем связать себя с одним из них.
Было бы неплохо четко услышать от Google, какова окончательная стратегия, т.е.
- Собирается ли GDAA заменить REST в один прекрасный день после того, как все функции REST включены?
- Будут ли они уйти в отставку после этого?
Удачи