Für eine App, die ich entwickeln muss, muss ich mit einem SyncAdapter sowohl mit Google Mail als auch mit Facebook Daten synchronisieren können. Ich hoffe, dass ich mit den lokalen Facebook- und Gmail-Apps (falls verfügbar) statt mit ihren Remote-Servern synchronisieren kann. Die Synchronisierung mit den lokalen Apps würde weniger Akkuverbrauch, weniger Netzwerknutzung, schnellere Synchronisierung usw. bedeuten. Natürlich werde ich bei Bedarf die richtigen Berechtigungen festlegen.
Meine Fragen :
Wenn keine davon verfügbar ist, muss ich die Daten selbst abrufen, das ist für diese Frage nicht relevant.
Ich kann nicht für Facebook sprechen, aber die Google Mail-App erlaubt dies nicht. Früher hat es funktioniert, aber seitdem haben sie es gesichert, sodass nur Google-Apps den E-Mail-Content-Provider abfragen können. Das Beste, was Sie tun können, ist die Anzahl der Nachrichten mit der Etiketten-API . Sie können ein Authentifizierungstoken (ClientLogin oder OAuth2) für Google-Dienste mit dem Standard Android AccountManager
abrufen. Sie müssen es dann verwenden, um eine Verbindung zu der bestimmten API herzustellen, um die tatsächlichen Daten zu erhalten.
Ah, jetzt habe ich Ihre Frage besser verstanden. Ich glaube nicht, dass Sie die Daten, an denen Sie interessiert sind, direkt von den lokalen Kopien der Apps erhalten können. Es ist eine interessante Idee und vernünftig für die Geschwindigkeit / Raum / Bandbreite Gründe, die Sie vorschlagen, aber würde erhebliche Unterstützung von den Apps benötigen, die derzeit nicht verfügbar ist.
Der Versuch, die erneute Eingabe des Passworts durch den Benutzer zu vermeiden, ist auch dann noch fast unmöglich, wenn die Apps die gemeinsame Nutzung lokaler Daten unterstützen. Wie wird die App von Google Mail prüfen, ob Ihre App die Berechtigung zum Lesen aller Daten haben sollte? Vermutlich durch Eingabe Ihres GMail-Benutzernamens und -Passworts. Lediglich auf dem gleichen Gerät zu sein bedeutet definitiv kein vollständiges Vertrauen.
Mit einem SyncAdapter und dem Speichern des Authentifizierungstokens, wie im Beispielprojekt gezeigt, sollten Sie den Benutzer auf die einmalige Eingabe seiner Anmeldeinformationen beschränken können, aber das ist das Beste, was Sie tun können.
>Vorher:
Haben Sie sich den im Lieferumfang des SDK enthaltenen SampleSyncAdapter angesehen?
Diese Anweisungen geben einen schnellen Überblick über den Zugriff auf die Beispiele.
Wenn Sie Eclipse verwenden, ist es sogar noch einfacher, als es dort vorgeschlagen wird. Um das Beispielprojekt zu erhalten:
File
& gt; New
& gt; %Code%
Other...
& gt; %Code%
Das Beispielprojekt ist ein großartiges Beispiel für die Verwendung von SyncAdaptern und sollte leicht für die Verbindung mit Google Mail, Facebook usw. geeignet sein.
Tags und Links android gmail facebook android-syncadapter