java - studio - Eliminar/eliminar el archivo de android con android.gms.drive
google drive para desarrolladores (2)
Delete es compatible con la API de Android de Google Drive a partir de los servicios de Google Play 7.5 utilizando el método DriveResource.delete () .
Eliminar es permanente y se recomienda solo para el contenido de la carpeta de la aplicación, donde la papelera no está disponible.
Necesito eliminar archivos de Google Drive usando com.google.android.gms.drive
. Por lo que he leído aquí y en la web, no hay soporte para la eliminación de archivos en la "nueva API". ¿Es eso (todavía) correcto? Me refiero a que la API ya no es tan nueva ...
También leí sobre la estrategia de "borrar contenido y olvidar", pero me gustaría no seguir ese enfoque.
Parte 2 de la pregunta: Dado que aún es imposible eliminar archivos a través de la API mencionada anteriormente; ¿Hay alguna manera fácil de combinar la API REST con el código que ya he escrito? Algo como
- obtener token de GoogleApiClient
- solicitud de DELETE de fuego con token y identificación de archivo
- ???
- lucro
editar: Los nuevos servicios de Google Play (versión 7.0.0 / marzo de 2015) finalmente cuentan con un método de trash()
. Consulte https://developer.android.com/reference/com/google/android/gms/drive/DriveResource.html para obtener más detalles. .
edit2: Aparentemente no puedes usar trash()
en los archivos de la carpeta de la aplicación : Cannot trash App Folder or files inside the App Folder.
eliminar la carpeta de la aplicación Cannot trash App Folder or files inside the App Folder.
: (((
edit3: a partir del 28 de mayo, ahora es posible eliminar archivos.
ACTUALIZACIÓN (mayo de 2015)
La adición de funcionalidad de eliminación de basura a GDAA 7.5 hace que la respuesta a continuación sea irrelevante .
RESPUESTA ORIGINAL:
La secuencia es:
- Obtenga DriveId de GDAA (archivo o carpeta)
- Obtenga ResourceId de DriveId.getResourceId () (puede ser nulo si el archivo / carpeta aún no está confirmado)
- use ResourceId (rsid) en esta llamada REST:
com.google.api.services.drive.Drive.files().trash(rsid).execute() com.google.api.services.drive.Drive.files().delete(rsid).execute()
- finalmente se da cuenta de que no puede hacerlo ya que verá el archivo en GDAA mucho después de que haya sido eliminado / destruido. Incluso puede escribir en él, crear archivos en esa carpeta que acaba de destrozar, ... Por eso las personas introdujeron la estrategia de "borrar el contenido y olvidar" que a nadie le gusta.
Huelga decir que esto se aplica a cualquier acción de eliminación / papelera que pueda realizar fuera del universo GDAA (eliminar basura manualmente / eliminar utilizando la interfaz web, etc.)
Entonces, para concluir. ''pinoyyid'' es correcto, cada una de las API es diferente y el GDAA no puede reemplazar el REST (todavía). Te darás cuenta rápidamente cuando trates de trabajar un poco más, como obtener una URL en miniatura, resolver problemas de latencia, etc. Por otro lado, GDAA tiene ventajas, ya que puede funcionar fuera de línea sin que tu aplicación lo maneje. Al utilizar REST, su aplicación debe realizar todas las llamadas de Drive en algún tipo de servicio de sincronización para separar sus acciones de IU de los problemas de red (retrasos, fuera de línea, ...). GDAA maneja esto para usted, pero según sus propios términos de tiempo. Y sin funcionalidad de eliminación.
Puse un trozo de código en github, que tiene ambas API usadas una al lado de la otra y puedes usarla para jugar con diferentes escenarios antes de comprometerte con una de ellas.
Sería bueno escuchar claramente de Google cuál es la estrategia final, es decir,
- ¿GDAA va a reemplazar el REST un día, después de que toda la funcionalidad REST esté dentro?
- ¿Van a retirar el RESTO después?
Buena suerte