收集了使用Provider获取contacts2.db数据库联系人数据的一些常用URI。另外Android对contacts.db数据库的表做了类的封装,表中的字段都有相应的静态常量,更多详情可查阅官方文档:
http://developer.android.com/ref ... vider/Contacts.html
contacts表也就是联系人表的URI —— content://com.android.contacts/contacts ,对应类静态常量为ContactsContract.Contacts.CONTENT_URI
联系人电话URI —— content://com.android.contacts/data/phones ,对应静态常量为ContactsContract.CommonDataKinds.Phone.CONTENT_URI
联系人邮箱URI —— content://com.android.contacts/data/emails ,对应静态常量为ContactsContract.CommonDataKinds.Email.CONTENT_URI
联系人地址URI —— content://com.android.contacts/data/postals ,对应静态常量为ContactsContract.CommonDataKinds.StructuredPostall.CONTENT_URI
所有联系人的Uri —— content://contacts/people
某个联系人x的Ur —— content://contacts/people/x
data表URI —— content://com.android.contacts/data ,对应静态常量为ContactsContract.Data.CONTENT_URI
注:data表中提供了data1-data15命名的表项,google不使用有实际意义的单词来命名是有原因的。data表用于存放联系人的具体数据信息,包括姓名、地址、电话等等。每一行为一个数据项信息(比如姓名为一行数据,其中包括前缀名字段,中间名字段,后缀名字段等等;地址为一行数据,其中包括省份,城市,街道等等)。假如采用具体有实际意义的单词来作为字段名,以姓名数据需要的字段中间名来说,采用这个字段名,那么这个字段只有姓名数据需要,而其它地址、电话等数据都不需要,那么它们就需要把这个字段值镂空。这么一来,整个表中就会有很多数据项镂空。因此,采用data1-data15来命名字段,而每行数据区分data1-data15代表的实际意义依赖于外键字段mimetype_id(数据类型)来区别。一下是一些数据类型data字段的部分意义:
当data行数据类型为名字时,data x表项代表意义:
PREFIX = "data4"; //名称前缀
MID_NAME = "data5";//中间名
GIVEN_NAME = "data2";//名字
contacts表也就是联系人表的URI —— content://com.android.contacts/contacts ,对应类静态常量为ContactsContract.Contacts.CONTENT_URI
联系人电话URI —— content://com.android.contacts/data/phones ,对应静态常量为ContactsContract.CommonDataKinds.Phone.CONTENT_URI
联系人邮箱URI —— content://com.android.contacts/data/emails ,对应静态常量为ContactsContract.CommonDataKinds.Email.CONTENT_URI
联系人地址URI —— content://com.android.contacts/data/postals ,对应静态常量为ContactsContract.CommonDataKinds.StructuredPostall.CONTENT_URI
所有联系人的Uri —— content://contacts/people
某个联系人x的Ur —— content://contacts/people/x
data表URI —— content://com.android.contacts/data ,对应静态常量为ContactsContract.Data.CONTENT_URI
注:data表中提供了data1-data15命名的表项,google不使用有实际意义的单词来命名是有原因的。data表用于存放联系人的具体数据信息,包括姓名、地址、电话等等。每一行为一个数据项信息(比如姓名为一行数据,其中包括前缀名字段,中间名字段,后缀名字段等等;地址为一行数据,其中包括省份,城市,街道等等)。假如采用具体有实际意义的单词来作为字段名,以姓名数据需要的字段中间名来说,采用这个字段名,那么这个字段只有姓名数据需要,而其它地址、电话等数据都不需要,那么它们就需要把这个字段值镂空。这么一来,整个表中就会有很多数据项镂空。因此,采用data1-data15来命名字段,而每行数据区分data1-data15代表的实际意义依赖于外键字段mimetype_id(数据类型)来区别。一下是一些数据类型data字段的部分意义:
当data行数据类型为名字时,data x表项代表意义:
PREFIX = "data4"; //名称前缀
MID_NAME = "data5";//中间名
GIVEN_NAME = "data2";//名字