2012-07-23 67 views
1

我想在我的應用程序中將手機通訊錄(姓名和電話號碼)與我的contentProviver「通訊錄」同步。所以我搜索並找到兩種方法:ContentOberver和SyncAdapter。與應用程序同步手機通訊錄

在我的情況下,我不需要與Internt進行連接,因此我只與我的應用程序的數據庫同步。如果用戶刪除了我想要在我的數據庫中刪除的聯繫人,則更新或插入時也是如此。

因此ContentObserver是這種情況下更好的方法嗎?

有一種方法可以知道聯繫人的關鍵?就像db中一行的關鍵字一樣。如果是的話,我可以頻繁更新我的數據庫(用戶可以選擇時間)。

回答

0

如果您想添加標記爲應用程序聯繫人的聯繫人,則需要同步適配器。 如果您未添加同步適配器,則不會顯示聯繫人。 添加同步適配器時,您還需要身份驗證器。您可以使用一個虛擬身份驗證器,始終添加相同的用戶而不向用戶詢問任何內容。 您需要考慮的一點是,如果沒有互聯網連接,同步適配器將永遠不會被觸發。出於這個原因,當數據發生變化時,您需要手動觸發同步。

要做類似於你所描述的事情,我開發了一個同步適配器,同時也可以直接觸發同步器,並通過ContentObserver知道用戶何時刪除本地通訊錄中的聯繫人。

如果您的同步只是一種方式,這意味着您不需要從應用程序插入/修改您不需要同步適配器。

+0

在我的應用程序中,用戶可以選擇一些集體呼叫(如白名單),所以我只需要在我的應用程序中讀取聯繫人。我的數據庫應該有相同的手機聯繫人數據庫,因此當用戶更改名稱時,聯繫人會自動更改名稱。 – weldsonandrade 2012-07-23 19:55:44

+0

我看起來更深入ContentObserver,我認爲這對我的目的不起作用,因爲我必須將其註冊,但我可以使用警報週期性地初始化。 – weldsonandrade 2012-07-23 19:58:25

+0

你認爲我必須做什麼? – weldsonandrade 2012-07-23 19:58:59

相關問題