最近做了个项目, 主要是基于系统通讯录操作的, 大概的功能说下把, 联系人列表, 通话记录列表, 联系人名片, 新增群组与智能分组, 联系人收藏列表, 短信群发, 导航电话与位置分享功能, 自定义拨号键盘, 通讯录备份, 换肤功能.
其实做完这个项目后, 我觉得我对通讯录的关键的那几张表有了更深入的了解, 之前我并没有接触过类似的项目, 在做这个项目的时候也做得很蛋疼, 因为对表的不熟悉, 所以在查询, 操作时会出现很多问题.
通讯录数据库contacts2.db, 主要操作的表是contacts, raw_contacts, data, mimetypes.
contacts表:
在这张表中我们主要可以获取到contact_id, starred
可以通过CONTENT_URI来得到contacts表的游标.
步骤:
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Logger.e("Contacts._id---->>" + id); //联系人ID String displayname = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));//姓名 String starred = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts