2012-05-10 17 views
7

Sto implementando un adattatore di sincronizzazione per la mia app da sincronizzare con un back-end appengine. In Appengine sto usando l'API utente integrata per l'autenticazione. C'è un post HERE che dice come farlo, tuttavia l'app è elencata sotto l'account Gmail. Idealmente la mia app sarebbe elencata nei conti. Non voglio chiedere all'utente nome utente e password, basta usare l'account google esistente per l'autenticazione. Qualcuno ha fatto questo prima ??Adattatore di sincronizzazione Android con account utente Google appengine

Aggiornamento: Ho lavorato su questo e sembra che potrei implementare il AuthenticationService e memorizzare il nome dell'account degli utenti e lasciare la password come una stringa vuota. Nei metodi getAuthToken() dovrei essere in grado di restituire semplicemente il token di autenticazione di google. Pubblicherò una volta che avrò più avanti ...

risposta

3

Forse hai frainteso il sistema di account Android. Quando vai su Impostazioni -> Account & Sincronizza e aggiungi un nuovo account, quello che vedi è un elenco di account tipi. Spesso esiste una relazione tra tipi di account e app, ad esempio gli account Facebook vengono utilizzati insieme a Facebook. Normalmente si aggiunge un nuovo tipo di account se si dispone di un sistema di backend diverso per la gestione dell'autenticazione ecc.

Se ho capito bene, si utilizzano gli account Google ma si desidera che appaia come il proprio tipo di account. Mi sembra sbagliato. Finirai per reimplementare la gestione dell'account Google, con poco valore. Credo che sia più semplice per gli utenti se si è semplicemente a cavallo di ciò che Google ti offre. La tua app/servizio/fornitore di contenuti può essere visto quando fai clic sull'account. Ad esempio, dopo installing "Tasks" by "Team Task" (dichiarazione di non responsabilità: non sono affiliato con tale società) aggiungono "Attività di sincronizzazione" all'elenco delle opzioni di sincronizzazione dei dati &.

Ma se si desidera veramente creare il proprio tipo di account, seguire l'esempio Sample Sync Adapter. Cerca il codice Authenticator e le risorse correlate (ad es. Manifest, layout dell'attività, ecc.).

+0

capisco quello che stai dicendo, ma sarò la sincronizzazione dei dati che è specifico per la mia app e rappresentano gli utenti . Ha senso inserire i "task di sincronizzazione" nell'account google dato che sono i dati di google che vengono sincronizzati. Sto utilizzando account google per il login e il nome utente dell'account perché l'utente non dovrà ricordare un'altra password e riduce il mio carico di lavoro – Patrick

+0

Continuo a pensare che sarebbe meglio aggiungere i dati dell'app come parte dell'account Google degli utenti. Tuttavia, poiché non sei d'accordo sentiti libero di implementare un autenticatore personalizzato per la tua app. È abbastanza semplice seguire l'esempio dell'adattatore di sincronizzazione di esempio e utilizzare gli account Google come lato server (o, forse, è possibile utilizzare l'appengine come mediatore per l'autorizzazione). L'autenticatore dell'adattatore di sincronizzazione di esempio utilizza anche appengine per il backend, rendendo le cose più facili per te lì. – andyandy

2

Questo è effettivamente possibile e l'ho implementato con successo ma attenzione è un po 'di mal di testa.

C'è un ottimo tutorial disponibili chiamato writing-an-android-sync-provider-part-1

... non dimenticare di controllare il follow-up in part 2

Al di là di questo c'è anche un esempio nei campioni SDK Android chiamati SampleSyncAdapter che era inestimabile nel mio sviluppo.

Con un po 'di duro lavoro e un sacco di caffè si dovrebbe essere in grado di ottenere questo lavoro;)

+0

Ho capito che è tutto mio, ma ho ancora alcune cose da appianare.Ho già avuto l'autenticazione con l'impostazione degli account Google nella mia app, quindi non ho davvero bisogno di implementare getAuthToken e altri metodi in AuthenticationService. Fondamentalmente voglio solo usare la funzionalità del syncadapter ... avere un codice che potresti condividere dal servizio di autenticazione? come hai aggiunto gli account nella tua app? – Patrick

+0

Tutto il codice è nel codice di esempio SampleSyncAdapter che ho collegato nella risposta. L'ho tolto alle basi (e l'ho rotto un paio di volte) poi l'ho inserito nel mio codice. Un suggerimento utile però ... c'è un piccolo file xml di cui questa cosa ha bisogno e che troverai nel progetto di esempio ... assicurati di metterlo nella tua cartella xml ... neraly impazzì nel tentativo di risolverlo;) – Merlin

+0

Questo articolo potrebbe anche essere utile [collegamento-i-punti-con-android-syncadapter] (http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/) – Merlin

Problemi correlati