SyncAdapter ohne Konto

8

Ich versuche, einen SyncAdapter für meine Android-App zu erstellen, um YouTube-Videos von einem bestimmten Kanal aus zu zeigen. Die Videos sind gemeinfrei. Daher möchte ich nicht, dass sich der Benutzer anmeldet, ein Konto erstellt, sich authentifiziert, Daten hochlädt oder die Kontaktdatenbank verwendet. Ich möchte einfach, dass der SyncAdapter die Datenbank meiner App regelmäßig mit den neuesten Video-Metadaten dieses Kanals aktualisiert. Ich habe bereits einen ContentProvider für den Zugriff auf meine Datenbank erstellt. Ich mag die Tatsache, dass der SyncProvider mit der Fähigkeit umgehen kann, Synchronisations-, Planungs- und Wiederholungs-Backoff-Mechanismen für die Aktualisierung abzuschalten.

Ich fragte früher, ob ein SyncAdapter eine gute Wahl für meinen Anwendungsfall ist, und mir wurde gesagt, dass es war. Ich habe das Google I / O-Video angeschaut, die Dokumente gelesen, Blogs gelesen ... (siehe Liste unten). Ich konnte nichts zur Arbeit bringen. Das Beste, was ich bekommen habe, war, dass das SyncAdapter-Konto in den globalen Einstellungen für "Accounts & amp; sync" erscheint, aber nicht funktioniert. Selbst wenn dies funktioniert, wäre es weniger als ideal, da ich es vorziehe, dass der Nutzer das Konto nur in meiner App sieht. Dies wäre akzeptabel, wenn es keine andere Option gäbe, solange sie nicht auf sie zugreifen müssen, um sie einzurichten, da alles einmal täglich automatisch synchronisiert wird.

Ich habe sogar versucht, den SampleSyncAdapter unverändert zu verwenden und Haltepunkte in die Abschnitte für den Authentifizierungscode zu setzen. Es wird kein einziger Haltepunkt erreicht, so dass ich nicht sehen kann, was die Aufrufe auslöst oder welche Daten enthalten sind. Ich hätte gedacht, dass ich wenigstens so viel bekommen würde.

Ich fange an zu denken, dass die Verwendung eines SyncAdapters trotz der Empfehlung eine schlechte Idee ist. Ich muss noch ein Beispiel finden, das meinem Wunsch sehr nahe kommt, ganz zu schweigen von einem Tutorial oder kompletten, übersichtlichen und übersichtlichen Dokumenten. Dies scheint eine häufige Aufgabe zu sein, die viele Apps erledigen würden.

Fügen Sie diesem Beitrag eine gute Dokumentation zu diesem Anwendungsfall hinzu. Ich kann keine finden.
Ohne dies wäre es fair, jedem zu empfehlen, SyncAdapter nicht für diesen Anwendungsfall zu verwenden. Ich spreche hier nicht für andere Anwendungsfälle, also sprich nicht weiter, wie es für deinen Anwendungsfall funktioniert, wenn es nicht wie meines ist.

Es wäre auch hilfreich zu wissen, welche Version der API-Ebene für die Primetime bereit ist. Es gibt eine Reihe von Problemen bezüglich Versionsnummern. Ich versuche, so niedrig wie möglich zu bleiben, um die meisten Nutzer zu erreichen. Mein aktuelles API-Ziel ist 7.

Hier ist eine Liste von Links, die ich erfolglos versucht habe, andere könnten diese nützlicher finden:

Ссылка

Ссылка

Ссылка

Ссылка

Ссылка

Ссылка

Ссылка

Ссылка

Android SyncAdapter ohne Authentifizierung vs. Android-Dienst

>

Warum löst ContentResolver.requestSync keine Synchronisierung aus? >

    
Mitch 18.12.2011, 20:46
quelle

2 Antworten

6

Kurz gesagt lautet die Antwort: ContentProvider , AccountManager und SyncAdapter gehen zusammen. Sie müssen diese drei Teile haben, auch wenn sie "dumm" sind.

    
rds 23.12.2011 09:40
quelle
5

"ContentProvider, AccountManager und SyncAdapter gehören zusammen". Für Ihre Anwendung können Sie die folgende Aktivität aufrufen, wenn Ihre App das erste Mal geladen wird, um sich zu authentifizieren und automatisch zu synchronisieren:

%Vor%

Dies funktioniert in Android API 5 +.

    
Rabi 02.02.2012 15:28
quelle