Android中联系人数据结构及逻辑

Android 2.1中的联系人主要存储在四个table中:
accounts存储已经登陆的账号以及账号类型。
raw_contacts存储联系人的ID,以及属于哪个账号和账号类型。
groups存储组的ID,以及属于哪个账号和账号类型。
data存储联系人的所有信息,包括名字,属于哪个组,电话,等等。每一条信息为一条单独记录。

另外contacts组是raw_contacts数据在Contacts应用中的映射。Contacts应用会把重名的联系人合并,并且存放在contacts表中,而raw_contacts同google account的数据是一致的。

如果在sign in account之前,已经在本地数据库中加入了联系人,即raw_contacts table中有数据,则:
1. 如果该contact不属于任何组,则同步后被加入到account的My Contacts组中。
2. 如果该contact属于某个组,而该组不属于任何account,则同步后该组会被加入到account中,而该组中的联系人数据会丢失。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章