2017-05-15 2 views
3

Für meine App muss eine Liste mit Google Drive synchronisiert werden. Ich habe implementiert bereits die SignIn und hatte meine Main_Activity beide implementieren:Android - Verwenden der Google Drive API für Android

com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks, 
com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener 

Auch wenn ich die ganze Google Drive API for Android Dokumentation lesen und insbesondere die Store Application Data Teil. Und schaute durch die example on GitHub, ich war nicht in der Lage, es zur Arbeit zu bekommen. Ich persönlich finde diese Dokumentation wirklich verwirrend zu lesen. Es ist noch nicht einmal klar, was der Unterschied zwischen der Google Drive API für Android und der Google Drive-REST-API ist und welche ich für mein Szenario verwenden sollte.

Auch ich bemerkte, dass das Beispiel auf GitHub eine benutzerdefinierte Aktivität erweitert, die andere Methoden enthält.

Kann jeder von Ihnen Schritt für Schritt erklären, wie man die Android-Laufwerk-API verwendet?

+0

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

+0

Können Sie Ihren Beitrag bearbeiten, um Ihre MainActivity einzuschließen? –

Antwort

2

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.

+0

Danke für die Antwort, es hat definitiv viel geholfen, was sind genau die Einschränkungen der Synchronisationsfrequenz, über die Sie sprechen. Dies könnte für mich irgendwie entscheidend sein. – Daniele

+0

@Daniele Siehe Update-Antwort. – Cheticamp

0

Die Android-API von Google Drive veranschaulicht alle Möglichkeiten, mit Google Play Services über die in Google Play-Diensten verfügbaren Schnittstellen mit dem Google Drive-Dienst zu kommunizieren. Überprüfen Sie diese URI für den schnellen Start.

Google Drive REST API wird für alle Technologien nicht nur für Android nützlich sein. Wie in der Google Drive REST API Documentation

Verwandte Themen