android - studio - google drive para desarrolladores
Drive API para Android está roto, ¿verdad? (2)
A agosto de 2015, el ''Drive API para Android'' no funciona como (vagamente) documentado, se rompe efectivamente. Los principales puntos dolorosos son los siguientes:
1) Una aplicación que comparte el mismo APP_ID e inició sesión con el mismo usuario de Google debe poder encontrar y acceder a los mismos archivos que indica Google (por ejemplo, appX en el dispositivo1 crea una carpeta llamada ''blahblah'' (donde no hay carpeta ''blahblah'') ya existe en la unidad del usuario), appX en el dispositivo2 debería poder encontrar esa carpeta y cargar / descargar archivos también ... sin embargo, este no es el caso (o si funciona, es intermitente y, en general, no funciona en todas)). Esto sigue siendo así incluso después de (muchas) solicitudes de llamadas Sync y más de 72 horas de permitir que Drive se sincronice a sí mismo.
2) Una carpeta papelera no se considera como papelera, incluso después de que una llamada requestSync haya tenido éxito. Tal carpeta papelera todavía tendrá isTrashed == false.
3) Una carpeta papelera permanente (es decir, ha desaparecido de Drive, nunca volverá). Todavía se pueden encontrar y "con éxito" se han creado carpetas y archivos dentro de él, sin embargo, escribir en el contenido de dicho archivo siempre producirá un error en el Servicio de eventos de finalización. Una vez más, dicha carpeta seguirá teniendo isTrashed == false (que es abismal).
Se han presentado informes de errores (gracias a @DalmTo para el enlace) a través de: https://code.google.com/a/google.com/p/apps-api-issues/issues/entry?labels=Type-Defect, API-Drive
https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=4003 https://code.google.com/a/google.com/p/apps -api-issues / issues / detail? id = 4004
ASÍ, la pregunta: ¿sabes cómo evitar estos problemas?
ACTUALIZAR:
Reduje estos problemas a mi cuenta personal de Google (o a mi disco personal, que tiene muchos, muchos archivos). Esto sugiere que estos problemas son síntomas o están estrechamente relacionados con https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3905
Puedo darte algunos puntos sobre el tema 1 / (sincronización en múltiples dispositivos con la misma aplicación). Ya lo he estado señalando en abril de 2014 sin una respuesta satisfactoria (en realidad, un silencio rotundo). Así que volví a la API REST y manejé todo por mi cuenta (usando syncadapter, servicio, ...). El algoritmo REST es:
- crear / actualizar / eliminar / .... (método execute)
- ID de recurso de despacho (''id'' + mensaje) usando GCM a otros dispositivos
- deje que otros dispositivos se encarguen del cambio a través de la API REST (nuevamente, en servicio)
He vuelto a visitar el GDAA varias veces desde entonces y nunca obtuve resultados satisfactorios (requestSync). Finalmente, me sentí medio contento cuando comencé a usar '' eventos de finalización '' (un año más tarde, no hace falta decirlo).
Nuevamente el algo es:
- crear ...
- obtener ResourceId de finalización
- despachar mensaje ''ResourceId'' + usando GCM a otros dispositivos
- deje que otros dispositivos se encarguen del cambio a través del GDAA (utilizando ResourceId)
... y el punto es:
Durante el tiempo que estuve tratando de hacerlo funcionar, finalmente me di cuenta de que el GDAA no es adecuado para todas las aplicaciones (como la que estamos discutiendo aquí). El GDAA atraviesa todo tipo de aros y bucles para hacer que el estado en línea / fuera de línea sea transparente y al mismo tiempo almacenar en caché los datos y optimizar el tráfico de la red, el uso de la batería, ... Crea latencia, estados impredecibles ...
... así que, al final, dejé de culpar al GDAA por no ser un cuchillo suizo y hacer todo lo que todos imaginaron. Depende del desarrollador comprender PLENAMENTE las ventajas / desventajas de una caja de herramientas que está usando y decidir de antemano qué herramienta usar. Lo sé, los doctores no lo deletrean y créanme, yo mismo quedé atrapado en la emoción de Magnus. Todavía recuerdo la advertencia de pinoyyid en enero de 2014, diciéndome que no saltara demasiado temprano.
Buena suerte
Según su respuesta en el rastreador de problemas , creemos que este es un problema con la sincronización para su cuenta particular, potencialmente relacionado con este problema . Continuaremos la discusión sobre este tema en el rastreador de problemas.