Ich bin vertraut mit Ihrer Frustration. Es gibt die "Google Drive Android API" (GDAA) und die "Drive REST API". Es gibt einige gute Dokumentationen im Web, aber es kann eine Herausforderung sein, sie zu finden und einen Sinn daraus zu machen, zumal die Namen der Pakete so ähnlich sind. Darüber hinaus gibt es mindestens zwei vorhandene Versionen von "Drive REST API", und Sie müssen die Versionen gerade halten.
In Bezug auf GDAA, haben Sie bereits diese documentation gefunden, aber Sie sollten genauer hinsehen. Ich schlage vor, dass Sie eine einfache Aktivität wie creating a file machen und von dort aus arbeiten.
Ich denke, dass die benutzerdefinierte Aktivität in dem Beispiel auf GitHub, das Sie verweisen, die BaseDemoActivity
ist. Diese Klasse stellt einfach einige der Lebenszyklusmethoden und einige andere übliche Routinen bereit.
Die Google Drive Android-API (GDAA) ist eng in die Play Services integriert, und die Google-Ansprüche bieten eine bessere Leistung. (Siehe Hinweis here):
Hinweis: Dieser Schnelleinstieg veranschaulicht die Verwendung der Drive REST API in einer Android-Anwendung. In den meisten Fällen profitieren die Drive-Apps von Google jedoch stark von der Drive API für Android, die in Google Play Services integriert ist und eine bessere Leistung bietet. Bevor Sie die Google Drive-REST-API in Ihrer Android-Anwendung verwenden, sollten Sie die Google Drive-API für Android sorgfältig prüfen und sie möglichst in Ihrer Anwendung verwenden. Eine Drive API für Android Quickstart ist verfügbar, wenn Sie mehr erfahren möchten.
Obwohl, ich habe GDAA in den meisten Fällen aufgegeben, aufgrund der verschärften Einschränkungen der Häufigkeit der Synchronisierung. (Weitere Informationen finden Sie in den Hinweisen am Ende dieses Posts.)
Bei der Arbeit mit GDAA ist zu beachten, dass der Code zwar auf dem UI-Thread ausgeführt werden kann, aber möglicherweise nicht langwierige Aufgaben, die es in Ihrem Auftrag ausführt.Das bedeutet, dass GDAA, sobald Sie GDAA aufgefordert haben, eine Aufgabe über den Benutzeroberflächenthread auszuführen, dies im Hintergrund (nicht im Benutzeroberflächenthread) ausführt und Ergebnisse über die Rückrufe an Sie übermittelt.
Diese Struktur, obwohl notwendig, bedeutet, dass Ihr Code eine Reihe von Methoden sein wird, die vom GDAA aufgerufen werden und nicht notwendigerweise ein klares sequenzielles Format aufweisen, das Sie vielleicht gewohnt sind. Ich betrachte es als eine Pachinko-Maschine in Software.
Obwohl keine Schritt-für-Schritt-Anleitung, hoffe ich, dass dies hilft Ihnen in die richtige Richtung.
In Bezug auf Sync-Frequenz: Insbesondere Uploads auf den Server wird mit DrivePreferencesApi
wie angegeben auftreten. Uploads erfolgen normalerweise ziemlich schnell. Downloads sind jedoch ratenbegrenzt. Siehe this documentation.
Um eine übermäßige Belastung des Geräts und des Servers zu vermeiden, sind Synchronisierungsanforderungen ratenbegrenzt. In diesem Fall wird die Operation mit dem DRIVE_RATE_LIMIT_EXCEEDED-Status fehlschlagen, was darauf hinweist, dass eine Synchronisierung bereits vor kurzem stattgefunden hat, sodass keine weitere Synchronisierung erforderlich ist. Die Operation wird erfolgreich ausgeführt, wenn nach einer ausreichenden Backoff-Dauer erneut versucht wird.
Ich glaube, dass die "Backoff Dauer" hängt von der Version von Play Services installiert. Nach meiner Erfahrung variierte diese Dauer von ein paar Minuten bis zu 1/2 Stunde oder mehr. Dies könnte sich geändert haben und ich habe versucht, eine Dokumentation zu finden, die aber nicht erfolgreich war.
Wenn die Download-Beschränkung von GDAA nicht für Sie funktioniert, sollten Sie Drive REST in Betracht ziehen. Sie können Firebase auch als mögliche Lösung betrachten.
Die Auswahl einer zu verwendenden API hängt von Ihrem Anwendungsfall ab. Um Sie bei der Unterscheidung zwischen diesen APIs zu unterstützen, lesen Sie diese [SO-Post] (http://stackoverflow.com/questions/42410458/difference-between-google-api-and-google-rest-api). In Bezug auf die Synchronisierung Ihrer App-Liste mit Google Drive sollten Sie, nachdem Sie herausgefunden haben, welche API Sie verwenden möchten, diesen [thread] (https://productforums.google.com/forum/#!topic/drive/) überprüfen. MRk_e2kUwlQ) und sehen, ob es Ihnen hilft. – Teyam
Können Sie Ihren Beitrag bearbeiten, um Ihre MainActivity einzuschließen? –