1 通讯录的权限声明
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
2 通讯录的表结构分析
raw_contacts表只存放了联系人的id
data表存放了联系人的数据,如手机号码,姓名,电子邮箱
raw_contacts与表data是一对多的关系.即data表中有一个外键raw_contact_id与表raw_contacts的主键是一致的。
表data的主要字段的解析:
mimetype_id字段:该数据表示什么意思,比如其值为5时代表了电话号码.在表mimetypes里对各个数字代表什么意思做了详尽的描述
data1:该字段很重要.专门用来存放联系人的各种数据.如手机号码,姓名,电子邮箱
data2:该字段是对data1字段的一个说明.比如这个手机号码是工作用的还是家庭用的,电子邮箱是上班用的还是私生活中使用
call表是用来存放通话记录的数据。
3 向通讯录中添加联系人
首先是更新raw_contacts表,表中有一个_id,然后再更新data表,把详细的信息放在此表中
并不是先更新data表后再更新raw_contacts表.因为data表中有一个外键raw_contact_id与表Raw_contacts的主键_id是一致的
raw_contacts表中除了_id以外,其实都是在data表更新后才更新的.
第一步:我们向raw_contacts表中添加一条空的数据即可.为了得到其自动增长的主键_id
第二步:更新data表中的数据