2013-04-24 25 views
13

Chcę użyć adaptera synchronizacji w mojej aplikacji do zsynchronizowania kontaktów rodzimych i osób trzecich (z wyjątkiem FB) z serwerem. (Tylko klienta do serwera jednokierunkowej synchronizacji)Adapter synchronizacji kontaktów w Androidzie

Mam dwie wątpliwości tutaj -

1) Jeżeli istnieje wiele adapterów synchronizacji w urządzeniu i Jeśli brudny bit jest już zdaje innym synchronizacji adapter, by mój zasilacz synchronizacji być w stanie natychmiast wykryć zmianę/aktualizację kontaktów.

2) Użyłem

ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); 
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);  

do synchronizacji kontaktów z serwera.

Włącza synchronizację co 30 sekund.

Ale chcę, aby natychmiast otrzymywał powiadomienia, gdy tylko kontakty zostaną dodane, usunięte lub zaktualizowane, aby rozpocząć operację perfromSync.

Czy muszę również używać obserwatora?

Odpowiedz

3

Aby zobaczyć zmiany w kontaktach, musisz zarejestrować obserwatora w ContentResolver. Interfejs API synchronizacji nie jest przeznaczony do oglądania dla każdej zmiany, ma to być interfejs API działający w tle, który system Android uruchamia okresowo automatycznie, dzięki czemu może grupować operacje i efektywniej korzystać z sieci, a nie działać, gdy sieć jest wyłączona itd. ..

Brudny bit jest używany dla każdego konta. Ogólnie rzecz biorąc, synchronizacja ma na celu posiadanie konta "posiadania" na kontakt i nie jest przeznaczona do eksportowania wszystkich kontaktów z urządzenia do konkretnej usługi. Istnieje proces agregacji, który obsługuje łączenie kontaktów z wielu kont w jeden "kontakt" widziany przez użytkownika. Zobacz:

http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html

Aby uzyskać więcej informacji o tym, jak to działa.

Jeśli zamierzasz wyeksportować wszystkie kontakty z urządzenia do usługi, musisz przejść do kontaktów i wstawić nieprzetworzony kontakt do swojej usługi. Będziesz także chciał obejrzeć ContentResolver z obserwatorem, aby zobaczyć, kiedy użytkownik dodaje nowy kontakt w jakiejś usłudze lub okresowo chodzić po stole szukając kontaktów, których jeszcze nie wyeksportowałeś.

2

użyć wersji wersja bit. Jeśli jakikolwiek kontakt edytowany automatycznie zwiększona o 1.

więc tworzenie lokalnej bazy danych dla porównania poprzedni wersję do aktualnej wersji . Jeśli zajdą jakieś zmiany, uruchamiasz zapytanie o aktualizację.

, aby uzyskać więcej informacji, odwiedź stronę here.

Ta wersja pomaga w moich aktualizacjach synchronizacji. Tak więc podzielam tę odpowiedź dla wszystkich.

Powiązane problemy