2012-05-10 3 views
7

Implementuję adapter synchronizacji do synchronizacji mojej aplikacji z backendem aplikacji. W appengine używam wbudowanego interfejsu użytkownika do uwierzytelniania. Jest post HERE, który mówi, jak to zrobić, jednak aplikacja jest wymieniona pod kontem Gmail. Najlepiej byłoby, gdyby moja aplikacja znalazła się na kontach. Nie chcę pytać użytkownika o nazwę użytkownika i hasło, wystarczy użyć istniejącego konta google do uwierzytelnienia. Czy ktoś to wcześniej zrobił?Moduł synchronizacji Android z aplikacją Google Konta użytkownika

Aktualizacja: Pracowałem nad tym i wygląda na to, że mogę zaimplementować usługę uwierzytelniania i zapisać nazwę konta użytkownika i pozostawić hasło jako pusty ciąg. W metodach getAuthToken() powinienem być w stanie zwrócić prosty token uwierzytelniania google. Publikuję, gdy przejdę dalej ...

Odpowiedz

3

Być może źle zrozumiałeś system kont Android. Gdy przejdziesz do Ustawienia -> Konta & Synchronizuj i dodaj nowe konto, zobaczysz listę kont typów. Często istnieje związek między typami kont i aplikacjami, na przykład konta Facebooka są używane razem z Facebookiem. Zwykle dodajesz nowy typ konta, jeśli masz inny system zaplecza do obsługi uwierzytelniania itp.

Jeśli dobrze rozumiem, korzystasz z kont Google, ale chcesz, aby był wyświetlany jako Twój własny typ konta. Brzmi to źle dla mnie. Reimplementacja obsługi kont Google zakończy się z małą wartością. Uważam, że jest to prostsze dla użytkowników, jeśli po prostu zaczniesz śledzić to, co oferuje Google. Twój dostawca aplikacji/usługi/treści może być widoczny po kliknięciu konta. Na przykład po installing "Tasks" by "Team Task" (zrzeczenie się: nie jestem powiązana z tą firmą) dodaje on "Sync Tasks" do listy opcji synchronizacji danych: &.

Ale jeśli naprawdę chcesz utworzyć własny typ konta, postępuj zgodnie z próbką Sample Sync Adapter. Wyszukaj kod Authenticator i powiązane zasoby (np. Manifest, schemat działania itp.).

+0

rozumiem, co mówisz, ale będę synchronizowania danych, które są specyficzne dla mojej aplikacji i konta użytkowników . Ma sens umieszczanie "zadań synchronizacji" pod kontem Google, ponieważ jest to zsynchronizowane dane Google. Używam kont Google do logowania i używania nazwy użytkownika konta, ponieważ użytkownik nie musi pamiętać innego hasła i zmniejsza obciążenie. – Patrick

+0

Nadal uważam, że najlepiej byłoby dodać dane aplikacji jako część konta google użytkownika. Ponieważ jednak nie zgadzasz się, możesz zaimplementować niestandardowy wystawca uwierzytelnienia dla swojej aplikacji. Jest to dość łatwe dzięki zastosowaniu przykładowego adaptera do synchronizacji próbek i korzystania z kont Google po stronie serwera (lub, być może, możliwe jest wykorzystanie twojego appengine jako mediatora do autoryzacji). Przykładowy uwierzytelniacz adaptera synchronizacji wykorzystuje również appengine do obsługi backend, dzięki czemu jest łatwiej. – andyandy

2

Jest to rzeczywiście możliwe i wdrożyłem to z powodzeniem, ale ostrzegam, że to trochę bóle głowy.

Jest doskonały poradnik dostępny nazywa writing-an-android-sync-provider-part-1

... nie zapomnij sprawdzić śledzić w part 2

Poza tym jest także przykładem w próbkach Android SDK zwanych SampleSyncAdapter co było nieocenione w moim rozwoju.

Przy odrobinie ciężkiej pracy i dużo kawy powinieneś być w stanie uzyskać tej pracy;)

+0

Zrobiłem to sam, ale wciąż mam pewne rzeczy do wyplenienia.Już miałem uwierzytelnianie w ustawieniach kont Google w mojej aplikacji, więc naprawdę nie muszę implementować metody getAuthToken i innych metod w usłudze uwierzytelniania. Zasadniczo chcę tylko użyć funkcjonalności syncadapter ... mieć dowolny kod, który mógłbyś udostępnić z usługi uwierzytelniania? w jaki sposób dodałeś konta do swojej aplikacji? – Patrick

+0

Cały kod znajduje się w przykładowym kodzie przykładowym SampleSyncAdapter, który został połączony w odpowiedzi. Rozebrałem go do podstaw (i połamałem go kilka razy), a następnie przykręciłem go do kodu. Jedna pomocna wskazówka, chociaż ... jest tam mały plik xml, który tego potrzebuje, który znajdziesz w przykładowym projekcie ... upewnij się, że umieściłeś go w folderze xml ... neraly oszalał próbując rozwiązać ten;) – Merlin

+0

Ten artykuł może być również przydatny [podłączenie kropek do android-syncadapter] (http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-w-android-syncadapter/) – Merlin